/**
  * @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();
     }
 }
예제 #2
0
 /**
  * @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());
     }
 }