Example #1
0
 /**
  * Executes a request.
  *
  * @param request Request to execute.
  *
  * @return Response Response to send.
  */
 public function execute(Request $request)
 {
     try {
         $segments = $request->getPathSegments();
         if (count($segments) > 0) {
             $firstSegment = $segments[0];
             if (array_key_exists($firstSegment, $this->controllers)) {
                 $controller = $this->controllers[$firstSegment];
                 $controllerRequest = $request->consume();
                 $resource = $controller->getResource($controllerRequest);
                 if (isset($resource)) {
                     $verb = $request->getVerb();
                     if (method_exists($resource, $verb)) {
                         return $resource->{$verb}($controllerRequest);
                     } else {
                         return Response::notSupported();
                     }
                 }
             }
         }
         return Response::notFound();
     } catch (\Exception $e) {
         return Response::error($e->getMessage());
     }
 }