repository = $summit_repository; $this->speaker_repository = $speaker_repository; $this->event_repository = $event_repository; $this->event_feedback_repository = $event_feedback_repository; $this->service = $service; } public function getSummits() { try { $summits = array(); foreach($this->repository->getAll() as $summit){ $summits[] = SerializerRegistry::getInstance()->getSerializer($summit)->serialize(); } return $this->ok($summits); } catch (Exception $ex) { Log::error($ex); return $this->error500($ex); } } /** * @param $summit_id * @return mixed */ public function getSummit($summit_id) { $expand = Request::input('expand', ''); try { $summit = SummitFinderStrategyFactory::build($this->repository)->find($summit_id); if (is_null($summit)) return $this->error404(); return $this->ok(SerializerRegistry::getInstance()->getSerializer($summit)->serialize($expand)); } catch (Exception $ex) { Log::error($ex); return $this->error500($ex); } } /** * @param $summit_id * @return mixed */ public function getSummitEntityEvents($summit_id) { try { $summit = SummitFinderStrategyFactory::build($this->repository)->find($summit_id); if (is_null($summit)) return $this->error404(); $last_event_id = Request::input('last_event_id', null); $from_date = Request::input('from_date', null); $limit = Request::input('limit', 25); $rules = array ( 'last_event_id' => 'sometimes|required|integer', 'from_date' => 'sometimes|required|integer', 'limit' => 'sometimes|required|integer', ); $data = array(); if (!is_null($last_event_id)) { $data['last_event_id'] = $last_event_id; } if (!is_null($from_date)) { $data['from_date'] = $from_date; } if(!is_null($limit)){ $data['limit'] = $limit; } // Creates a Validator instance and validates the data. $validation = Validator::make($data, $rules); if ($validation->fails()) { $messages = $validation->messages()->toArray(); return $this->error412 ( $messages ); } if (!is_null($from_date)) { $from_date = new \DateTime("@$from_date"); } list($last_event_id, $last_event_date, $list) = $this->service->getSummitEntityEvents ( $summit, $this->resource_server_context->getCurrentUserExternalId(), $from_date, intval($last_event_id), intval($limit) ); return $this->ok ( //todo: send this new response once that testing is done! /*array ( 'events' => $list, 'last_event_id' => $last_event_id, 'last_event_date' => $last_event_date->getTimestamp() )*/ $list ); } catch (Exception $ex) { Log::error($ex); return $this->error500($ex); } } /** * @param $summit_id * @return mixed */ public function getEventTypes($summit_id) { try { $summit = SummitFinderStrategyFactory::build($this->repository)->find($summit_id); if (is_null($summit)) return $this->error404(); //event types $event_types = array(); foreach ($summit->getEventTypes() as $event_type) { $event_types[] =SerializerRegistry::getInstance()->getSerializer($event_type)->serialize(); } return $this->ok($event_types); } catch (Exception $ex) { Log::error($ex); return $this->error500($ex); } } /** * @param $summit_id * @return mixed */ public function getSummitTypes($summit_id) { try { $summit = SummitFinderStrategyFactory::build($this->repository)->find($summit_id); if (is_null($summit)) return $this->error404(); //summit types $summit_types = array(); foreach ($summit->getSummitTypes() as $summit_type) { $summit_types[] =SerializerRegistry::getInstance()->getSerializer($summit_type)->serialize(); } return $this->ok($summit_types); } catch (Exception $ex) { Log::error($ex); return $this->error500($ex); } } public function getExternalOrder($summit_id, $external_order_id){ try { $summit = SummitFinderStrategyFactory::build($this->repository)->find($summit_id); if (is_null($summit)) return $this->error404(); $order = $this->service->getExternalOrder($summit, $external_order_id); return $this->ok($order); } catch (EntityNotFoundException $ex1) { Log::warning($ex1); return $this->error404(array('message' => $ex1->getMessage())); } catch (ValidationException $ex2) { Log::warning($ex2); return $this->error412($ex2->getMessages()); } catch (Exception $ex) { Log::error($ex); return $this->error500($ex); } } public function confirmExternalOrderAttendee($summit_id, $external_order_id, $external_attendee_id){ try { $summit = SummitFinderStrategyFactory::build($this->repository)->find($summit_id); if (is_null($summit)) return $this->error404(); $member_id = $this->resource_server_context->getCurrentUserExternalId(); if (is_null($member_id)) { throw new \HTTP401UnauthorizedException; } $attendee = $this->service->confirmExternalOrderAttendee ( new ConfirmationExternalOrderRequest ( $summit, intval($member_id), trim($external_order_id), trim($external_attendee_id) ) ); return $this->ok(SerializerRegistry::getInstance()->getSerializer($attendee)->serialize()); } catch (EntityNotFoundException $ex1) { Log::warning($ex1); return $this->error404(array('message' => $ex1->getMessage())); } catch (ValidationException $ex2) { Log::warning($ex2); return $this->error412($ex2->getMessages()); } catch (\HTTP401UnauthorizedException $ex3) { Log::warning($ex3); return $this->error401(); } catch (Exception $ex) { Log::error($ex); return $this->error500($ex); } } }