コード例 #1
0
ファイル: TalkFormType.php プロジェクト: railto/joindin-web2
 public function __construct(EventEntity $event, array $languages, array $talkTypes, array $tracks)
 {
     $this->timezone = $event->getFullTimezone();
     $tz = new \DateTimeZone($this->timezone);
     $this->startDate = new \DateTimeImmutable($event->getStartDate(), $tz);
     $this->endDate = new \DateTimeImmutable($event->getEndDate(), $tz);
     $this->languages = $languages;
     $this->talkTypes = $talkTypes;
     $this->tracks = $tracks;
 }
コード例 #2
0
ファイル: EventDb.php プロジェクト: asgrim/joindin-web2
 public function save(EventEntity $event)
 {
     $data = array("url_friendly_name" => $event->getUrlFriendlyName(), "uri" => $event->getUri(), "stub" => $event->getStub(), "verbose_uri" => $event->getVerboseUri(), "name" => $event->getName());
     $this->cache->save($this->keyName, $data, 'uri', $event->getUri());
     $this->cache->save($this->keyName, $data, 'url_friendly_name', $event->getUrlFriendlyName());
     $this->cache->save($this->keyName, $data, 'stub', $event->getStub());
 }
コード例 #3
0
 /**
  * @param array       $slugs
  * @param EventEntity $event
  */
 private function getTalkSlugsFromApi(EventEntity $event)
 {
     $talkApi = $this->getTalkApi();
     // Fetch talks from the API
     $talks = $talkApi->getCollection($event->getTalksUri(), array('resultsperpage' => 100));
     /** @var \Talk\TalkEntity $talk */
     foreach ($talks['talks'] as $talk) {
         $slugs[$talk->getApiUri()] = $talk->getUrlFriendlyTalkTitle();
     }
     return $slugs;
 }
コード例 #4
0
ファイル: EventApi.php プロジェクト: nbalmer/joindin-web2
 public function unattend(EventEntity $event)
 {
     list($status, $result) = $this->apiDelete($event->getApiUriToMarkAsAttending());
     if ($status == 200) {
         return true;
     }
     throw new \Exception("Failed to unmark you as attending: " . $result);
 }
コード例 #5
0
ファイル: EventApi.php プロジェクト: robth82/joindin-web2
 /**
  * Returns a response array containing an 'events' and 'pagination' element.
  * Each event in this response is also stored in the cache so that a relation
  * can be made between the API URLs and Event entities.
  *
  * @param string $url API Url to query for one or more events. Either a
  *                    listing can be retrieved or a single event.
  * @param array  $queryParams
  *
  * @return array
  */
 public function getCollection($uri, array $queryParams = array())
 {
     $events = (array) json_decode($this->apiGet($uri, $queryParams));
     $meta = array_pop($events);
     $collectionData = array();
     foreach ($events['events'] as $item) {
         $event = new EventEntity($item);
         foreach ($event->getHosts() as $hostsInfo) {
             if (isset($hostsInfo->host_uri)) {
                 $hostsInfo->username = $this->userApi->getUsername($hostsInfo->host_uri);
             }
         }
         $collectionData['events'][] = $event;
         // save the URL so we can look up by it
         $this->eventDb->save($event);
     }
     $collectionData['pagination'] = $meta;
     return $collectionData;
 }
コード例 #6
0
 public function testNonExistentTestDataDoesntBreak()
 {
     $event = new EventEntity(new stdClass());
     $event->getName();
     $event->getIcon();
     $event->getStartDate();
     $event->getEndDate();
     $event->getLocation();
     $event->getDescription();
     $event->getTags();
     $event->getLatitude();
     $event->getLongitude();
     $event->getWebsiteAddress();
     $event->getAttendeeCount();
     $event->getCommentsCount();
     $event->getCommentsUri();
     $event->getApiUriToMarkAsAttending();
     $event->getTalksUri();
     $event->getUri();
     $event->getVerboseUri();
     $event->isAttending();
     $event->getUrlFriendlyName();
     $event->getStub();
     $event->getAllTalkCommentsUri();
     $this->assertEquals(false, $event->areCommentsEnabled());
 }
コード例 #7
0
 /**
  * Builds schedule data into an array structure
  * for schedule view
  *
  * @param EventEntity $event
  * @return array
  */
 public function getScheduleData(EventEntity $event)
 {
     $talks = $this->getTalks($event->getTalksUri() . '?start=0&resultsperpage=1000');
     $eventDays = $this->getEventDays($talks);
     return $eventDays;
 }