예제 #1
0
 /**
  * Returns routes to connect to the given application.
  *
  * @param Application $app An Application instance
  *
  * @return ControllerCollection A ControllerCollection instance
  */
 public function connect(Application $app)
 {
     /** @var ControllerCollection $controller */
     $controller = $app['controllers_factory'];
     $controller->get('/', function (Request $request) {
         return $this->respond($request, function (BreadCrumbsTrail $crumbs, ParameterReader $reader) {
             $execution = new ExecutionResource($this->domin, $reader, $crumbs);
             return $execution->handleGet(null);
         });
     });
     $controller->get('/{action}', function (Request $request, $action) {
         return $this->respond($request, function (BreadCrumbsTrail $crumbs, ParameterReader $reader) use($action, $request) {
             $execution = new ExecutionResource($this->domin, $reader, $crumbs);
             return $execution->handleGet($action, $request->get(ExecutionResource::TOKEN_ARG));
         });
     });
     $controller->post('/{action}', function (Request $request, $action) {
         return $this->respond($request, function (BreadCrumbsTrail $crumbs, ParameterReader $reader) use($action, $request) {
             $execution = new ExecutionResource($this->domin, $reader, $crumbs);
             return $execution->handlePost($action, $request->get(ExecutionResource::TOKEN_ARG));
         });
     });
     return $controller;
 }