/** * Creates a log entry from the given request * * @param Slim\Http\Request $request The request * * @return \API\Document\Log The log document */ public function logRequest($request) { $collection = $this->getDocumentManager()->getCollection('logs'); $document = $collection->createDocument(); $document->setIp($request->getIp()); $document->setMethod($request->getMethod()); $document->setEndpoint($request->getPathInfo()); $currentDate = new \DateTime(); $document->setTimestamp(Util\Date::dateTimeToMongoDate($currentDate)); $document->save(); return $document; }
public function testSlimRequest() { $env = \Slim\Environment::mock(array('REQUEST_METHOD' => 'GET', 'X_REQUESTED_WITH' => 'foo', 'slim.input' => 'This is the body.', 'PATH_INFO' => '/bar/xyz')); $req = new \Slim\Http\Request($env); $this->assertEquals('GET', $req->getMethod()); $slimRequest = new SlimRequest($req); $this->assertEquals('GET', $slimRequest->getMethod()); $this->assertEquals('/bar/xyz', $slimRequest->getResource()); $this->assertEquals('This is the body.', $slimRequest->getBody()); $this->assertTrue($slimRequest->hasHeader('X_REQUESTED_WITH')); $this->assertEquals('foo', $slimRequest->getHeader('X_REQUESTED_WITH')); }
/** * Call * * Implements Slim middleware interface. This method is invoked and passed * an array of environment variables. This middleware inspects the environment * variables for the HTTP method override parameter; if found, this middleware * modifies the environment settings so downstream middleware and/or the Slim * application will treat the request with the desired HTTP method. * * @return array[status, header, body] */ public function call() { $env = $this->app->environment(); if (isset($env['HTTP_X_HTTP_METHOD_OVERRIDE'])) { // Header commonly used by Backbone.js and others $env['slim.method_override.original_method'] = $env['REQUEST_METHOD']; $env['REQUEST_METHOD'] = strtoupper($env['HTTP_X_HTTP_METHOD_OVERRIDE']); } elseif (isset($env['REQUEST_METHOD']) && $env['REQUEST_METHOD'] === 'POST') { // HTML Form Override $req = new \Slim\Http\Request($env); $method = $req->post($this->settings['key']); if ($method) { $env['slim.method_override.original_method'] = $env['REQUEST_METHOD']; $env['REQUEST_METHOD'] = strtoupper($method); } } $this->next->call(); }
/** * Deleta o usuario * $request e $response usam interface psr7 * $args contém os argumentos informados na rota * * @param Slim\Http\Request $request * @param Slim\Http\Response $response * @param array $args * @return void|Slim\Http\Response */ public function delete($request, $response, $args) { $id = $args['id']; $validations = [v::intVal()->validate($id)]; if ($this->validate($validations) === false) { return $response->withStatus(400); } else { $usuario = Models\Usuario::with('relationDependentes')->find($id); if ($usuario) { $dependentes = $usuario->relationDependentes->all(); if ($dependentes) { $status = 403; echo $this->error('delete#usuarios{id}', $request->getUri()->getPath(), $status, 'FK_CONSTRAINT_ABORT'); return $response->withStatus($status); } else { $usuario->delete(); } } else { $status = 404; echo $this->error('delete#usuarios{id}', $request->getUri()->getPath(), $status); return $response->withStatus($status); } } }
/** * Test get user agent string when not set */ public function testGetUserAgentWhenNotExists() { $env = \Slim\Environment::mock(); unset($env['HTTP_USER_AGENT']); $req = new \Slim\Http\Request($env); $this->assertNull($req->getUserAgent()); }
public function testDispatchWithoutCallable() { \Slim\Environment::mock(array('REQUEST_METHOD' => 'GET', 'REMOTE_ADDR' => '127.0.0.1', 'SCRIPT_NAME' => '', 'PATH_INFO' => '/hello/josh', 'QUERY_STRING' => 'one=1&two=2&three=3', 'SERVER_NAME' => 'slim', 'SERVER_PORT' => 80, 'slim.url_scheme' => 'http', 'slim.input' => '', 'slim.errors' => fopen('php://stderr', 'w'), 'HTTP_HOST' => 'slim')); $env = \Slim\Environment::getInstance(); $req = new \Slim\Http\Request($env); $router = new \Slim\Router(); $router->setResourceUri($req->getResourceUri()); $route = new \Slim\Route('/hello/:name', 'foo'); $route->matches($req->getResourceUri()); //<-- Extracts params from resource URI $this->assertFalse($router->dispatch($route)); }
/** * Reconstructs a full URL for the request from Slim's request object. * * @param Slim\Environment $env The application environment. * @param Slim\Http\Request $request * @return string The request URL. */ private function request_url($env, $request) { $url = implode('', array($request->getUrl(), $request->getRootUri(), $request->getPathInfo())); if (isset($env['QUERY_STRING']) and !empty($env['QUERY_STRING'])) { $url .= '?' . $env['QUERY_STRING']; } return $url; }
public function testRouteMiddlwareArguments() { $this->expectOutputString('foobar'); \Slim\Environment::mock(array('SCRIPT_NAME' => '', 'PATH_INFO' => '/foo')); $env = \Slim\Environment::getInstance(); $req = new \Slim\Http\Request($env); $router = new \Slim\Router(); $route = new \Slim\Route('/foo', function () { echo "bar"; }); $route->setName('foo'); $route->setMiddleware(function ($route) { echo $route->getName(); }); $route->matches($req->getResourceUri()); //<-- Extracts params from resource URI $router->dispatch($route); }
function path() { return $this->slimRequest->getPath(); }