public function getMember(SS_HTTPRequest $request) { try { $summit_id = intval($request->param('SUMMIT_ID')); $summit = $this->summit_repository->getById($summit_id); if (is_null($summit)) { throw new NotFoundEntityException('Summit', sprintf(' id %s', $summit_id)); } $member_id = intval($request->param('MEMBER_ID')); $member = Member::get_by_id('Member', $member_id); if (is_null($member)) { throw new NotFoundEntityException('Member', sprintf(' id %s', $member_id)); } $speaker = $member->Speaker()->ID ? $member->Speaker()->toMap() : ''; $affiliation = ''; if ($affiliation_obj = $member->getCurrentAffiliation()) { $affiliation = $affiliation_obj->toMap(); $affiliation['Company'] = array('id' => $affiliation_obj->Organization()->ID, 'name' => $affiliation_obj->Organization()->Name); } echo json_encode(array('speaker' => $speaker, 'affiliation' => $affiliation)); } 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 $this->serverError(); } }
public function getLocationsByDay(SS_HTTPRequest $request) { try { $query_string = $request->getVars(); $summit_id = intval($request->param('SUMMIT_ID')); $day = strtolower(Convert::raw2sql($query_string['day'])); $summit = $this->summit_repository->getById($summit_id); if (is_null($summit)) { throw new NotFoundEntityException('Summit', sprintf(' id %s', $summit_id)); } if (!$summit->isDayBelongs($day)) { throw new EntityValidationException(sprintf('day %s does not belongs to summit id %s', $day, $summit_id)); } $response = array('day' => $day, 'summit_id' => intval($summit_id), 'locations' => array()); foreach ($summit->getTopVenues() as $venue) { $class_name = $venue->ClassName; if ($class_name != 'SummitVenue' && $class_name != 'SummitExternalLocation' && $class_name != 'SummitHotel') { continue; } $count = $summit->getPublishedEventsCountByDateLocation($day, $venue); array_push($response['locations'], array('id' => intval($venue->ID), 'events_count' => intval($count))); if ($class_name == 'SummitVenue') { foreach ($venue->Rooms() as $room) { $count = $summit->getPublishedEventsCountByDateLocation($day, $room); array_push($response['locations'], array('id' => intval($room->ID), 'events_count' => intval($count))); } } } return $this->ok($response); } catch (Exception $ex) { SS_Log::log($ex->getMessage(), SS_Log::ERR); return $this->serverError(); } }
public function getConsultant() { $company_service_id = intval($this->request->param('COMPANY_SERVICE_ID')); $consultant = $this->consultant_repository->getById($company_service_id); if (!$consultant) { return $this->notFound(); } return $this->ok(ConsultantAssembler::convertConsultantToArray($consultant)); }
public function updateBulkPresentations(SS_HTTPRequest $request) { try { if (!$this->isJson()) { return $this->validationError(array('invalid content type!')); } $summit_id = intval($request->param('SUMMIT_ID')); $summit = $this->summit_repository->getById($summit_id); if (is_null($summit)) { throw new NotFoundEntityException('Summit', sprintf(' id %s', $summit_id)); } $data = $this->getJsonRequest(); $this->summit_service->updateBulkPresentations($summit, $data); return $this->ok(); } catch (EntityValidationException $ex1) { SS_Log::log($ex1->getMessage(), SS_Log::WARN); return $this->validationError($ex1->getMessages()); } catch (NotFoundEntityException $ex3) { SS_Log::log($ex3->getMessage(), SS_Log::WARN); return $this->notFound($ex3->getMessage()); } catch (Exception $ex) { SS_Log::log($ex->getMessage(), SS_Log::ERR); return $this->serverError(); } }
public function pdf() { $services = $this->consultant->getServicesOffered(); $unique_services = array(); $unique_regions = array(); foreach ($services as $service) { if (!array_key_exists($service->getType(), $unique_services)) { $unique_services[$service->getType()] = $service; } if (!array_key_exists($service->getRegionID(), $unique_regions)) { $region = $this->region_repository->getById($service->getRegionID()); $unique_regions[$service->getRegionID()] = $region; } } return Controller::curr()->Customise(array('Consultant' => $this->consultant, 'Services' => new ArrayList(array_values($unique_services)), 'Regions' => new ArrayList(array_values($unique_regions))))->renderWith(array('ConsultantsDirectoryPage_pdf')); }
public function exportPresentationsCompanyReport(SS_HTTPRequest $request) { try { $query_string = $request->getVars(); $sort = isset($query_string['sort']) ? Convert::raw2sql($query_string['sort']) : 'name'; $sort_dir = isset($query_string['sort_dir']) ? Convert::raw2sql($query_string['sort_dir']) : 'ASC'; $search_term = isset($query_string['term']) ? Convert::raw2sql($query_string['term']) : ''; $summit_id = intval($request->param('SUMMIT_ID')); $summit = $this->summit_repository->getById($summit_id); if (is_null($summit)) { throw new NotFoundEntityException('Summit', sprintf(' id %s', $summit_id)); } $ext = 'csv'; $report_data = $this->presentation_repository->searchByCompanyPaged($summit_id, null, null, $sort, $sort_dir, $search_term); $filename = "presentations_company_report-" . date('Ymd') . "." . $ext; $delimiter = $ext == 'xls' ? "\t" : ","; return CSVExporter::getInstance()->export($filename, $report_data['Data'], $delimiter); } 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 $this->serverError(); } }
public function getSponsorOptions(SS_HTTPRequest $request) { try { $query_string = $request->getVars(); $query = Convert::raw2sql($query_string['query']); $summit_id = intval($request->param('SUMMIT_ID')); $event_id = intval($request->param('EVENT_ID')); $summit = $this->summit_repository->getById($summit_id); if (is_null($summit)) { throw new NotFoundEntityException('Summit', sprintf(' id %s', $summit_id)); } $event = $this->summitevent_repository->getById($event_id); if (is_null($event)) { throw new NotFoundEntityException('SummitEvent', sprintf(' id %s', $event_id)); } $sponsors = DB::query("SELECT C.ID AS id, C.Name AS name FROM Company AS C\n WHERE C.Name LIKE '{$query}%'\n ORDER BY C.Name"); $json_array = array(); foreach ($sponsors as $sponsor) { $json_array[] = $sponsor; } echo json_encode($json_array); } 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 $this->serverError(); } }
protected function registerHyperVisor(IOpenStackImplementation $implementation, $hypervisor_type_id) { $hypervisor = $this->hypervisor_type_repository->getById($hypervisor_type_id); if (!$hypervisor) { throw new NotFoundEntityException('', ''); } $implementation->addHyperVisor($hypervisor); }
protected function addRegionalSupport(array $regional_support_data, IRegionalSupportedCompanyService $regional_supported_company_service) { $region = $this->marketplace_factory->buildRegionById(intval($regional_support_data['region_id'])); $support_channels_data = $regional_support_data['support_channels']; $regional_support = $this->factory->buildRegionalSupport($region, $regional_supported_company_service); $region = $this->region_repository->getById($regional_support->getRegion()->getIdentifier()); if (!$region) { throw new NotFoundEntityException('', ''); } foreach ($regional_support->getSupportChannelTypes() as $support_channel_type) { if (!$this->support_channel_type_repository->getById($support_channel_type->getIdentifier())) { throw new NotFoundEntityException('', ''); } } $regional_supported_company_service->addRegionalSupport($regional_support); foreach ($support_channels_data as $support_channel_data) { $support_channel_type = $this->marketplace_factory->buildSupportChannelTypeById(intval($support_channel_data['type_id'])); $regional_support->addSupportChannelType($support_channel_type, $support_channel_data['data']); } }
public function ExportEventToICS(SS_HTTPRequest $request) { try { $event_ids = $request->getVar('events_id'); if (is_null($event_ids)) { return $this->validationError("missing events_id param"); } $event_ids = explode(',', $event_ids); // https://www.ietf.org/rfc/rfc2445.txt $vCalendar = new Calendar('www.openstack.org'); foreach ($event_ids as $event_id) { $event = $this->summitevent_repository->getById($event_id); if (is_null($event)) { throw new NotFoundEntityException('SummitEvent', sprintf(' id %s', $event_id)); } if (!$event->isPublished()) { throw new EntityValidationException(sprintf("event id %s does not belongs to schedule!", $event->getIdentifier())); } $vEvent = new \Eluceo\iCal\Component\Event(md5(uniqid(mt_rand(), true)) . "event"); $vEvent->setCreated(new \DateTime())->setDtStart(new \DateTime($event->getStartDateUTC()))->setDtEnd(new \DateTime($event->getEndDateUTC()))->setNoTime(false)->setSummary($event->Title)->setDescription(strip_tags($event->ShortDescription))->setDescriptionHTML($event->ShortDescription); if ($location = $event->getLocation()) { $venue = $location; $geo = null; if ($location->getTypeName() == SummitVenueRoom::TypeName) { $venue = $location->getVenue(); } if (is_a($venue, 'SummitGeoLocatedLocation')) { $geo = sprintf("%s;%s", $venue->getLat(), $venue->getLng()); } $vEvent->setLocation($location->getFullName(), $location->getFullName(), $geo); } $vCalendar->addComponent($vEvent); } $response = new SS_HTTPResponse($vCalendar->render(), 200); $response->addHeader("Content-type", "text/calendar; charset=utf-8"); $response->addHeader("Content-Disposition", "inline; filename=event-" . implode('-', $event_ids) . ".ics"); return $response; } 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()); } }
public function getComponentListByRelease() { try { $release_id = intval($this->request->param('RELEASE_ID')); $release = $this->release_repository->getById($release_id); if (!$release) { throw new NotFoundEntityException('OpenStackRelease', sprintf('id %s', $release_id)); } $list = array(); foreach ($release->getOpenStackComponents() as $component) { array_push($list, OpenStackComponentsCrudApi::convertComponentToArray($component)); } return $this->ok($list); } catch (NotFoundEntityException $ex1) { return $this->notFound($ex1->getMessage()); } catch (Exception $ex) { return $this->serverError(); } }
public function matchEventbriteAttendee(SS_HTTPRequest $request) { try { $eb_attendee_id = intval($request->param('EB_ATTENDEE_ID')); $member_id = intval($request->param('MEMBER_ID')); $summit_id = intval($request->param('SUMMIT_ID')); $summit = $this->summit_repository->getById($summit_id); if (is_null($summit)) { throw new NotFoundEntityException('Summit', sprintf(' id %s', $summit_id)); } $attendee = $this->summit_service->matchEventbriteAttendee($summit, $eb_attendee_id, $member_id); return $this->ok($attendee->ID); } 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 $this->serverError(); } }
public function emailRegistrationCode(SS_HTTPRequest $request) { try { $summit_id = intval($request->param('SUMMIT_ID')); $code_id = intval($request->param('CODE_ID')); $summit = $this->summit_repository->getById($summit_id); if (is_null($summit)) { throw new NotFoundEntityException('Summit', sprintf(' id %s', $summit_id)); } $promocode = $this->summit_service->sendEmailPromoCode($summit, $code_id); return $this->ok($promocode->getCode()); } catch (EntityValidationException $ex1) { SS_Log::log($ex1->getMessage(), SS_Log::WARN); return $this->validationError($ex1->getMessages()); } 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 $this->serverError(); } }
protected function registerCompanyServiceVideo(array $data, ICompanyService $company_service) { $validator = $this->validator_factory->buildValidatorForMarketPlaceVideo($data); if ($validator->fails()) { return $this->validationError($validator->messages()); } $video = $this->marketplace_factory->buildVideo($data['title'], isset($data['description']) ? $data['description'] : '', $data['youtube_id'], intval($data['length']), $this->marketplace_factory->buildVideoTypeById(intval($data['type_id'])), $company_service); $company_service_id = $video->getOwner()->getIdentifier(); $company_service = $video->getOwner(); if ($company_service_id > 0 && !$this->repository->getById($company_service_id)) { throw new NotFoundEntityException('CompanyService', sprintf("id %s", $company_service_id)); } $video_type_id = $video->getType()->getIdentifier(); $video_type = $this->video_type_repository->getById($video_type_id); if (!$video_type) { throw new NotFoundEntityException('MarketPlaceVideoType', sprintf("id %s", $video_type_id)); } if (!is_null($this->add_video_policy)) { $this->add_video_policy->canAdd($company_service, $video_type); } $company_service->addVideo($video); }
public function getRoomMetrics(SS_HTTPRequest $request) { try { $summit_id = intval($request->param('SUMMIT_ID')); $summit = $this->summit_repository->getById($summit_id); $event_id = intval($request->param('EVENT_ID')); $event = $this->event_repository->getById($event_id); $time_offset = $request->getVar('offset'); if (is_null($summit)) { throw new NotFoundEntityException('Summit', sprintf(' id %s', $summit_id)); } if (is_null($event)) { throw new NotFoundEntityException('Event', sprintf(' id %s', $event_id)); } $time_offset = $summit->convertDateFromTimeZone2UTC($event->getBeginDateYMD() . ' ' . $time_offset); $metrics = $this->room_metrics_repository->getByRoomAndDate($event->LocationID, $event->getStartDateUTC(), $event->getEndDateUTC(), $time_offset)->limit(10); $metrics_array = array(); foreach ($metrics as $metric) { $type = $metric->Type()->Type; $unit = $metric->Type()->Unit; $time = $summit->convertDateFromUTC2TimeZone(date('H:i:s', $metric->TimeStamp), 'g:iA'); $data = array($time, $metric->Value); if (!isset($metrics_array[$type])) { $metrics_array[$type] = array('type' => $type, 'unit' => $unit, 'metrics' => array()); } $metrics_array[$type]['metrics'][] = $data; } return $this->ok($metrics_array); } 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 $this->serverError(); } }
public function getCurrentPrivateCloud() { $private_cloud_id = intval($this->request->getVar('id')); $is_draft = intval($this->request->getVar('is_draft')); $private_cloud = false; if ($private_cloud_id > 0) { if ($is_draft) { $private_cloud = $this->private_clouds_draft_repository->getById($private_cloud_id); } else { $private_cloud = $this->private_clouds_draft_repository->getByLiveServiceId($private_cloud_id); } //if no draft found we pull the live one to create the draft from it when saved if (!$private_cloud) { $private_cloud = $this->private_clouds_repository->getById($private_cloud_id); } } return $private_cloud; }
/** * @param ICompanyService $consultant * @param array $data * @return ICompanyService|void * @throws EntityValidationException * @throws NotFoundEntityException */ protected function updateCollections(ICompanyService $consultant, array $data) { $consultant = parent::updateCollections($consultant, $data); //languages if (array_key_exists('languages_spoken', $data) && is_array($data['languages_spoken'])) { $languages_data = $data['languages_spoken']; $lang_order = 0; foreach ($languages_data as $language_name) { $language = $this->language_repository->getByName($language_name); if (!$language) { $language = $this->factory->buildSpokenLanguage($language_name); $this->language_repository->add($language); } $consultant->addSpokenLanguages($language, $lang_order++); } } //config management if (array_key_exists('configuration_management', $data) && is_array($data['configuration_management'])) { $configuration_management_expertise_data = $data['configuration_management']; foreach ($configuration_management_expertise_data as $config_id) { $config = $this->configuration_management_expertise_repository->getById($config_id); if (!$config) { throw new NotFoundEntityException('ConfigurationManagementType', sprintf(' id %s', $config_id)); } $consultant->addConfigurationManagementExpertise($config); } } //services offered if (array_key_exists('services_offered', $data) && is_array($data['services_offered'])) { $services_offered_data = $data['services_offered']; foreach ($services_offered_data as $service_data) { $service = $this->service_offered_repository->getById(intval($service_data['id'])); if (!$service) { throw new NotFoundEntityException('ConsultantServiceOfferedType', sprintf(' id %s', intval($service['id']))); } if (array_key_exists('regions', $service_data) && is_array($service_data['regions'])) { $regions = $service_data['regions']; foreach ($regions as $region_id) { $region = $this->region_repository->getById(intval($region_id)); if (!$region) { throw new NotFoundEntityException('Region', sprintf(' id %s', intval($region_id))); } $consultant->addServiceOffered($service, $region); } } } } //Areas of OpenStack Expertise if (array_key_exists('expertise_areas', $data) && is_array($data['expertise_areas'])) { $expertise_areas_data = $data['expertise_areas']; foreach ($expertise_areas_data as $expertise_area_id) { $component = $this->component_repository->getById(intval($expertise_area_id)); if (!$component) { throw new NotFoundEntityException('OpenStackComponent', sprintf(' id %s', intval($expertise_area_id))); } $consultant->addExpertiseArea($component); } } //Reference Clients if (array_key_exists('reference_clients', $data) && is_array($data['reference_clients'])) { $reference_clients_data = $data['reference_clients']; foreach ($reference_clients_data as $client_name) { $client = $this->factory->buildClient(trim($client_name)); $consultant->addPreviousClients($client); } } //Offices if (array_key_exists('offices', $data) && is_array($data['offices'])) { $reference_offices_data = $data['offices']; foreach ($reference_offices_data as $office_data) { $validator = $this->validator_factory->buildValidatorForOffice($office_data); if ($validator->fails()) { return $this->validationError($validator->messages()); } $address_info = new AddressInfo($office_data['address_1'], $office_data['address_2'], $office_data['zip_code'], $office_data['state'], $office_data['city'], $office_data['country']); //list($lat,$lng) = $this->geo_coding_service->getAddressCoordinates($address_info); $office = $this->factory->buildOffice($address_info); $office->setLat((double) $office_data['lat']); $office->setLng((double) $office_data['lng']); $consultant->addOffice($office); } } return $consultant; }
public function getById($id) { return $this->repository->getById($id); }