POC done!

This commit is contained in:
Simon Vieille 2017-10-23 22:31:07 +02:00
commit 152dedd4be
2 changed files with 61 additions and 0 deletions

6
composer.json Normal file
View file

@ -0,0 +1,6 @@
{
"require": {
"phly/http": "^0.14.1",
"guzzlehttp/guzzle": "~6.0"
}
}

55
proxy.php Normal file
View file

@ -0,0 +1,55 @@
<?php
use Phly\Http\Response;
use GuzzleHttp\Client;
use Phly\Http\ServerRequestFactory;
use Phly\Http\ServerRequest;
require __DIR__.'/vendor/autoload.php';
function send(Response $response)
{
http_response_code($response->getStatusCode());
foreach ($response->getHeaders() as $header => $values) {
header(sprintf('%s: %s', $header, implode(', ', $values)));
}
echo $response->getBody();
}
function doRequest(ServerRequest $request, Client $client)
{
$headers = [];
foreach ($request->getHeaders() as $name => $value) {
$headers[$name] = $value[0];
}
$url = sprintf(
'https://bittrex.com/api/v1.1/%s',
ltrim($request->getServerParams()['PATH_INFO'], '/')
);
unset($headers['host']);
return $client->request(
$request->getMethod(),
$url,
[
'headers' => $headers,
'body' => $request->getBody(),
]
);
}
$apiResponse = doRequest(
ServerRequestFactory::fromGlobals(),
new Client()
);
send(new Response(
$apiResponse->getBody(),
$apiResponse->getStatusCode(),
$apiResponse->getHeaders()
));