This commit is contained in:
Simon Vieille 2017-11-08 20:09:43 +01:00
parent 7a46198d05
commit 351f3042d5
No known key found for this signature in database
GPG key ID: 919533E2B946EA10
2 changed files with 72 additions and 1 deletions

View file

@ -5,4 +5,4 @@ all:
$(COMPOSER) install
server:
$(PHP) -S 127.0.0.1:8080
$(PHP) -S 127.0.0.1:8080 -t .

71
index.php Normal file
View file

@ -0,0 +1,71 @@
<?php
use GuzzleHttp\Client;
use GuzzleHttp\Exception\ClientException;
use Phly\Http\ServerRequestFactory;
use Phly\Http\ServerRequest;
use Phly\Http\Response;
require __DIR__.'/vendor/autoload.php';
/**
* Sends an HTTP response.
*
* @param Response $response
*/
function sendResponse(Response $response)
{
http_response_code($response->getStatusCode());
foreach ($response->getHeaders() as $header => $values) {
header(sprintf('%s: %s'."\n", $header, implode(', ', $values)));
}
echo $response->getBody();
}
/**
* Does a request to the API of Bittrex.
*
* @param ServerRequest $request
* @param Client $client
*
* @return \GuzzleHttp\Psr7\Response
*/
function doRequest(ServerRequest $request, Client $client)
{
$headers = [];
foreach ($request->getHeaders() as $name => $value) {
$headers[$name] = $value[0];
}
$serverParams = $request->getServerParams();
$url = sprintf('https://gitnet.fr%s', $serverParams['PATH_INFO'] ?? $serverParams['REQUEST_URI']);
unset($headers['host']);
return $client->request(
$request->getMethod(),
$url,
[
'headers' => $headers,
'body' => $request->getBody(),
]
);
}
try {
$apiResponse = doRequest(
ServerRequestFactory::fromGlobals(),
new Client()
);
} catch (ClientException $e) {
$apiResponse = $e->getResponse();
}
return sendResponse(new Response(
$apiResponse->getBody(),
$apiResponse->getStatusCode(),
$apiResponse->getHeaders()
));