summit_repository = $summit_repository; $this->service = $service; parent::__construct($resource_server_context); } /** * @param $summit_id * @param $selection_plan_id * @param $presentation_id * @param $action_id */ public function complete($summit_id, $selection_plan_id, $presentation_id, $action_id){ try { $summit = SummitFinderStrategyFactory::build($this->summit_repository, $this->resource_server_context)->find($summit_id); if (is_null($summit)) return $this->error404(); $member = $this->resource_server_context->getCurrentUser(); if (is_null($member)) return $this->error403(); $authz = $summit->isTrackChair($member) || $summit->isTrackChairAdmin($member); if (!$authz) return $this->error403(); $action = $this->service->updateAction($summit, intval($selection_plan_id), intval($presentation_id), intval($action_id), true ); return $this->updated(SerializerRegistry::getInstance()->getSerializer($action)->serialize(Request::input('expand', ''))); } catch (ValidationException $ex) { Log::warning($ex); return $this->error412($ex->getMessages()); } catch (EntityNotFoundException $ex) { Log::warning($ex); return $this->error404($ex->getMessage()); } catch (Exception $ex) { Log::error($ex); return $this->error500($ex); } } /** * @param $summit_id * @param $selection_plan_id * @param $presentation_id * @param $action_id */ public function uncomplete($summit_id, $selection_plan_id, $presentation_id, $action_id){ try { $summit = SummitFinderStrategyFactory::build($this->summit_repository, $this->resource_server_context)->find($summit_id); if (is_null($summit)) return $this->error404(); $member = $this->resource_server_context->getCurrentUser(); if (is_null($member)) return $this->error403(); $authz = $summit->isTrackChair($member) || $summit->isTrackChairAdmin($member); if (!$authz) return $this->error403(); $action = $this->service->updateAction($summit, intval($selection_plan_id), intval($presentation_id), intval($action_id), false ); return $this->updated(SerializerRegistry::getInstance()->getSerializer($action)->serialize(Request::input('expand', ''))); } catch (ValidationException $ex) { Log::warning($ex); return $this->error412($ex->getMessages()); } catch (EntityNotFoundException $ex) { Log::warning($ex); return $this->error404($ex->getMessage()); } catch (Exception $ex) { Log::error($ex); return $this->error500($ex); } } }