public function getSpeakerByID(SS_HTTPRequest $request) { try { $speaker_id = intval($request->param('SPEAKER_ID')); $summit_id = intval($request->param('SUMMIT_ID')); $summit = Summit::get_by_id('Summit', $summit_id); if (is_null($summit)) { throw new NotFoundEntityException('Summit', sprintf(' id %s', $summit_id)); } $speaker = PresentationSpeaker::get_by_id('PresentationSpeaker', $speaker_id); $speaker_array = array('Title' => $speaker->Title, 'FirstName' => $speaker->FirstName, 'LastName' => $speaker->LastName, 'Email' => $speaker->RegistrationRequest()->Email, 'Member' => $speaker->Member()->Exists() ? $speaker->Member()->toMap() : null, 'Twitter' => $speaker->TwitterName, 'IRC' => $speaker->IRCHandle, 'Bio' => $speaker->Bio, 'PicUrl' => $speaker->ProfilePhoto(50), 'Expertise' => $speaker->AreasOfExpertise()->toNestedArray(), 'Presentations' => $speaker->Presentations()->toNestedArray(), 'OtherPresentations' => $speaker->OtherPresentationLinks()->toNestedArray(), 'TravelPreferences' => $speaker->TravelPreferences()->toNestedArray(), 'Languages' => $speaker->Languages()->toNestedArray(), 'Promocodes' => $speaker->PromoCodes()->toNestedArray(), 'Assistances' => $speaker->SummitAssistances()->toNestedArray(), 'OrganizationalRoles' => $speaker->OrganizationalRoles()->toNestedArray(), 'ActiveInvolvements' => $speaker->ActiveInvolvements()->toNestedArray()); return $this->ok($speaker_array, false); } catch (NotFoundEntityException $ex2) { SS_Log::log($ex2->getMessage(), SS_Log::WARN); return $this->notFound($ex2->getMessage()); } catch (Exception $ex) { SS_Log::log($ex->getMessage(), SS_Log::ERR); return $ex->getMessage(); } }
/** * @param int $summit_id * @param array $data * @param ISummitRegistrationPromoCode $promocode * @return ISummitRegistrationPromoCode */ public function populatePromoCode($summit_id, array $data, $promocode) { $code_type = $data['code_type']; switch ($code_type) { case 'ACCEPTED': case 'ALTERNATE': if (isset($data['speaker_id']) && $data['speaker_id']) { $speaker = PresentationSpeaker::get_by_id('PresentationSpeaker', trim($data['speaker_id'])); if ($speaker->Exists()) { $promocode->assignSpeaker($speaker); } } break; case 'VIP': case 'ATC': case 'MEDIA ANALYST': if (isset($data['member_id']) && $data['member_id']) { $owner = Member::get_by_id('Member', trim($data['member_id'])); if ($owner->Exists()) { $promocode->assignOwner($owner); } } if (isset($data['first_name'])) { $promocode->setFirstName(trim($data['first_name'])); } if (isset($data['last_name'])) { $promocode->setLastName(trim($data['last_name'])); } if (isset($data['email'])) { $promocode->setEmail(trim($data['email'])); } break; case 'SPONSOR': if (isset($data['member_id']) && $data['member_id']) { $owner = Member::get_by_id('Member', trim($data['member_id'])); if ($owner->Exists()) { $promocode->assignOwner($owner); } } if (isset($data['company_id']) && $data['company_id']) { $sponsor = Company::get_by_id('Company', trim($data['company_id'])); if ($sponsor->Exists()) { $promocode->assignSponsor($sponsor); } } if (isset($data['first_name'])) { $promocode->setFirstName(trim($data['first_name'])); } if (isset($data['last_name'])) { $promocode->setLastName(trim($data['last_name'])); } if (isset($data['email'])) { $promocode->setEmail(trim($data['email'])); } break; } $email_sent = isset($data['email_sent']) ? 1 : 0; $redeemed = isset($data['redeemed']) ? 1 : 0; $promocode->setCode(trim($data['code'])); $promocode->setEmailSent($email_sent); $promocode->setRedeemed($redeemed); $promocode->setSummit(trim($summit_id)); $promocode->setSource('ADMIN'); $promocode->setType($code_type); $promocode->setCreator(Member::currentUser()); return $promocode; }