public function testShouldHaveTheFirstErrorMessage() { $response = Response::create(HttpMethod::GET(), '1.2', true, HttpErrorCode::code412(), [Error::create('first error', 'Error'), Error::create('second error', 'Error')]); $this->assertSame('first error', $response->getErrorMessage()->getValue()); $response = Response::create(HttpMethod::GET(), '1.2', true, HttpErrorCode::code412()); $this->assertSame('', $response->getErrorMessage()->getValue()); }
/** * Registers services on the given app. * * This method should only be used to configure services and parameters. * It should not get services. */ public function register(Application $app) { $app['rest_normalizer.version'] = '0.1.0'; $app['rest_normalizer.builder'] = $app->protect(function ($object = null) use($app) { $version = $app['rest_normalizer.version']; $request = $app['request']; /** @var $request \Symfony\Component\HttpFoundation\Request */ $builder = ResponseBuilder::create($version, HttpMethod::valueOf($request->getMethod()), $object); foreach ($request->request->all() as $key => $value) { $parameter = Parameter::create($key, $value); $builder->addParameter($parameter); } return $builder; }); }
/** * Registers services on the given app. * * This method should only be used to configure services and parameters. * It should not get services. */ public function register(Application $app) { if ($app->offsetGet('api.version') === false) { throw new \Exception('Missing api version'); } $app['rest_normalizer.builder'] = $app->protect(function ($object = null) use($app) { $request = $app['request']; // @var $request Request $builder = ResponseBuilder::create($app['api.version'], HttpMethod::valueOf($request->getMethod()), $object); foreach ($request->request->all() as $key => $value) { $parameter = Parameter::create($key, $value); $builder->addParameter($parameter); } return $builder; }); }
/** * @param \stdClass $stdObj * @return HttpMethod * @throws ResponseParserException */ private function getHttpMethod(\stdClass $stdObj) { $method = HttpMethod::valueOf($stdObj->method); if (is_null($method)) { throw new ResponseParserException('Invalid HttpMethod: ' . $stdObj->method); } return $method; }
private function getBuilder() { return ResponseBuilder::create('1.2', HttpMethod::GET()); }
public function testShouldAddParameterCollection() { $builder = SuccessResponseBuilder::create(new SuccessDataBuilder(), '1.2', HttpMethod::GET()); $builder->addParameters(new ParameterCollection([Parameter::create('firstName', 'john'), Parameter::create('name', 'doe')])); $this->assertSame('{"apiVersion":"1.2","method":"GET","params":{"firstName":"john","name":"doe"},"data":{"items":[],"totalItems":0}}', json_encode($builder->build())); }
public function testShouldAddErrorCollection() { $builder = ErrorResponseBuilder::create(new ErrorDataBuilder(), '1.2', HttpMethod::GET(), HttpErrorCode::code500()); $builder->addErrors(new ErrorCollection([Error::create('e1', 'ErrorType'), Error::create('e2', 'ErrorType')])); $this->assertSame('{"apiVersion":"1.2","method":"GET","params":{},"code":500,"message":"e1","errors":[{"message":"e1","reason":"ErrorType","location":""},{"message":"e2","reason":"ErrorType","location":""}]}', json_encode($builder->build())); }
public function testShouldHaveDELETE() { $this->assertSame(HttpMethod::DELETE, HttpMethod::delete()->getValue()); }