/** * @return SS_HTTPResponse */ public function rsvpEvent() { try { $data = $this->getJsonRequest(); $event_id = (int) $this->request->param('EventID'); $summit_id = (int) $this->request->param('SUMMIT_ID'); $member_id = Member::CurrentUserID(); if ($member_id <= 0) { return $this->forbiddenError(); } if (!$data) { return $this->serverError(); } if (intval($summit_id) > 0) { $summit = $this->summit_repository->getById(intval($summit_id)); } if (strtolower($summit_id) === 'current') { $summit = Summit::ActiveSummit(); } if (is_null($summit)) { return $this->notFound('summit not found!'); } if (intval($event_id) > 0) { $event = $this->summitevent_repository->getById(intval($event_id)); } if (is_null($event)) { return $this->notFound('event not found!'); } else { if ($event->getSummit()->getIdentifier() != intval($summit_id)) { return $this->notFound('event not found in current summit'); } } $data['summit_id'] = $summit->ID; $data['event_id'] = $event_id; $data['member_id'] = $member_id; return $this->created($this->schedule_manager->addRSVP($data, new SummitAttendeeRSVPEmailSender())); } catch (EntityValidationException $ex1) { SS_Log::log($ex1, SS_Log::WARN); return $this->validationError($ex1->getMessages()); } catch (NotFoundEntityException $ex2) { SS_Log::log($ex2, SS_Log::WARN); return $this->notFound($ex2->getMessage()); } catch (Exception $ex) { SS_Log::log($ex, SS_Log::ERR); return $this->serverError(); } }
/** * @return SS_HTTPResponse */ public function addFeedback() { try { $data = $this->getJsonRequest(); $event_id = (int) $this->request->param('EventID'); $summit_id = (int) $this->request->param('SUMMIT_ID'); $member_id = Member::CurrentUserID(); if (!$data) { return $this->serverError(); } if (intval($summit_id) > 0) { $summit = $this->summit_repository->getById(intval($summit_id)); } if (strtolower($summit_id) === 'current') { $summit = Summit::ActiveSummit(); } if (is_null($summit)) { return $this->notFound('summit not found!'); } if (intval($event_id) > 0) { $event = $this->summitevent_repository->getById(intval($event_id)); } if (is_null($event)) { return $this->notFound('event not found!'); } else { if ($event->getSummit()->getIdentifier() != intval($summit_id)) { return $this->notFound('event not found in current summit'); } } $data['event_id'] = $event_id; $data['member_id'] = $member_id; $feedback = $this->eventfeedback_repository->getFeedback($event_id, $member_id); if ($feedback) { $this->schedule_manager->updateFeedback($data, $feedback); return $this->updated(); } else { return $this->created($this->schedule_manager->addFeedback($data)); } } catch (PolicyException $ex2) { SS_Log::log($ex2, SS_Log::ERR); return $this->validationError($ex2->getMessage()); } catch (EntityValidationException $ex3) { SS_Log::log($ex3, SS_Log::ERR); return $this->validationError($ex3->getMessages()); } }