/** * 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; }