public function convert(Request $request)
 {
     $headers = $request->getHeaders();
     $keysMap = f\map_indexed(function ($v, $k) {
         return 'HTTP_' . $k;
     }, $headers);
     $server = f\rename_keys($headers, $keysMap);
     return SymfonyRequest::create($request->getUri(), $request->getMethod(), $request->getParameters(), $cookies = array(), $files = array(), $server, $request->getContent());
 }
 public function testConstruction()
 {
     $method = 'POST';
     $uri = '/';
     $request = new Request($method, $uri);
     $this->assertSame($method, $request->getMethod());
     $this->assertSame($uri, $request->getUri());
     $this->assertSame(array(), $request->getHeaders());
     $this->assertSame(array(), $request->getParameters());
     $this->assertNull($request->getContent());
 }
 /**
  * @return Http\Response
  */
 public function request(Request $request)
 {
     $uri = $request->getUri();
     $requestConverter = new SymfonyHttpFoundationRequestConverter();
     $symfonyRequest = $requestConverter->convert($request);
     if ($uri === '/oauth/token') {
         $response = $this->server->token($symfonyRequest);
     } elseif ($uri === '/resource') {
         $response = $this->server->resource($symfonyRequest, function () {
             $response = new Response();
             $response->headers->set('content-type', 'text/plain');
             $response->setContent('My resource!');
             return $response;
         });
     } else {
         throw new \Exception('Invalid request.');
     }
     $responseConverter = new SymfonyHttpFoundationResponseConverter();
     return $responseConverter->convert($response);
 }