public function __construct(array $values = []) { parent::__construct($values); $this['serializer'] = SerializerBuilder::create()->build(); BreweryBuilder::mountProviderIntoApplication($this->baseRouteApi, $this); BeerBuilder::mountProviderIntoApplication($this->baseRouteApi, $this); }
public function __construct(array $values = []) { parent::__construct($values); $this->register(new ValidatorServiceProvider()); $this['serializer'] = SerializerBuilder::create()->build(); BreweryBuilder::mountProviderIntoApplication($this->baseRouteApi, $this); BeerBuilder::mountProviderIntoApplication($this->baseRouteApi, $this); $this->before(function (Request $request) { if ($request->getMethod() == 'OPTIONS') { return; } $tokens = (require_once __DIR__ . '/../../config/token.php'); if (!$tokens) { throw new \Exception("Error Processing Token file", 1); } if (!$request->headers->has('X-Token')) { return $this->json(['message' => 'Unauthorized'], 401); } if (!in_array($request->headers->get('X-Token'), array_keys($tokens))) { return $this->json(['message' => 'Forbidden'], 403); } if (!in_array($request->headers->get('Content-Type'), $this->mediaTypes)) { return $this->json(['message' => 'Not Acceptable'], 406); } $data = json_decode($request->getContent(), true); $request->request->replace(is_array($data) ? $data : array()); }); $this->error(function (\Exception $e, $code) { switch ($code) { case 404: $message = ['message' => 'A URL requisitada não foi encontrada.']; break; default: $message = ['message' => 'Ops, algo deu errado.']; } return $this->json($message, $code); }); $this->after(function (Request $request, Response $response) { $response->headers->set('Access-Control-Allow-Origin', '*'); $response->headers->set('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS'); $response->headers->set('Access-Control-Allow-Headers', 'Content-Type, X-Token'); }); }