package('camil-staps/botleagues-api', null, __DIR__.'/../..'); include __DIR__ . '/../../filters.php'; include __DIR__ . '/../../routes.php'; // To allow loading API requests from the specified domain $allowed_origin = Config::get('config.allowed_origin'); if (is_array($allowed_origin)) { $origin = Request::header('Origin'); if (in_array($origin, $allowed_origin)) { header('Access-Control-Allow-Origin: ' . $origin); } else { header('Access-Control-Allow-Origin: ' . $allowed_origin[0]); } } else { header('Access-Control-Allow-Origin: ' . $allowed_origin); } header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE'); header('Access-Control-Allow-Headers: Authorization'); $this->setupErrorHandlers(); } /** * Register the service provider. * * @return void */ public function register() { $this->app->register('Dingo\Api\Provider\ApiServiceProvider'); } /** * Get the services provided by the provider. * * @return array */ public function provides() { return array(); } /** * Setup nice error handlers for exceptions and fatal errors */ private function setupErrorHandlers() { App::fatal(function($e) { return Response::make( ['error' => Config::get('app.debug') ? $e->getMessage() : "Internal error"], 500); }); API::error(function(\Illuminate\Database\Eloquent\ModelNotFoundException $e) { return Response::make( ['error' => 'Resource not found'], 404); }); API::error(function(\Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException $e) { return Response::make( ['error' => !Config::get('app.debug') || empty($e->getMessage()) ? 'Access denied' : $e->getMessage()], 404); }); API::error(function(Exception\ValidationException $e) { return Response::make( [ 'error' => $e->getMessage(), 'errors' => $e->errors ], 500); }); API::error(function(\Exception $e) { return Response::make( ['error' => Config::get('app.debug') ? $e->getMessage() : "Internal error"], 500); }); } }