/** * 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; }
/** * Test get IP with proxy server and X-Forwarded-For header */ public function testGetIpWithForwardedFor() { $env = \Slim\Environment::mock(array('REMOTE_ADDR' => '127.0.0.1', 'CLIENT_IP' => '127.0.0.2', 'X_FORWARDED_FOR' => '127.0.0.3')); $req = new \Slim\Http\Request($env); $this->assertEquals('127.0.0.3', $req->getIp()); }
/** * Test get IP * @dataProvider dataTestIp */ public function testGetIp(array $server, $expected) { $env = \Slim\Environment::mock($server); $req = new \Slim\Http\Request($env); $this->assertEquals($expected, $req->getIp()); }