Example #1
0
 public function dispatch($request, $response, $args)
 {
     $event = $this->eventService->getLatestEvent();
     $filter = $this->contentService->getTwigFilter();
     $this->view->getEnvironment()->addFilter($filter);
     $this->view->render($response, 'home.twig', ['event' => $event]);
     return $response;
 }
 public function dispatch($request, $response, $args)
 {
     $events = $this->eventService->getAll();
     $speakers = $this->eventManager->getSpeakers();
     $venues = $this->eventService->getVenues();
     $this->eventService->mergeEvents($events, $speakers, $venues);
     $this->view->render($response, 'admin/dashboard.twig', ['events' => $events]);
     return $response;
 }
 public function dispatch(Request $request, Response $response, $args)
 {
     $meetupID = $request->getParam('meetup_id', false);
     if (!$meetupID) {
         $eventDetails['errors'][] = 'A meetup ID needs to be provided.';
     } else {
         $eventDetails = ['meetup_event' => $this->eventService->getEventById($meetupID), 'event_info' => $this->eventService->getEventInfo($meetupID)];
     }
     $this->view->render($response, 'admin/event-info.twig', $eventDetails);
     return $response;
 }
 public function dispatch(Request $request, Response $response, $args)
 {
     $speakers = $this->eventManager->getSpeakers();
     $venues = $this->eventService->getVenues();
     $supporters = $this->eventManager->getSupporters();
     $eventInfo = ['title' => '', 'description' => ''];
     if ($request->getParam('meetup_id')) {
         $event = $this->eventService->getEventById((int) $request->getParam('meetup_id'));
         if (!empty($event)) {
             $eventInfo['title'] = $event['subject'];
             $eventInfo['description'] = $event['description'];
             $eventInfo['venue_id'] = $event['venue_id'];
             $date = \DateTime::createFromFormat('F jS Y', $event['date']);
             $eventInfo['date'] = $date->format("d/m/Y");
         }
     }
     $errors = $this->flash->getMessage('event') ?? [];
     $frmErrors = [];
     if ($request->isPost()) {
         $validator = new EventValidator($_POST);
         try {
             $validator->talkValidation()->dateValidation();
             if (!$validator->isValid()) {
                 throw new \Exception('Form not valid.');
             }
             $event = new \App\Model\Event\Event(new Talk(strip_tags($request->getParam('talk_title'), '<p><a><br>'), strip_tags($request->getParam('talk_description'), '<p><img><a><br>'), $this->eventManager->getSpeakerById((int) $request->getParam('speaker'))), $request->getParam('start_date'), $request->getParam('start_time'), $this->eventService->getVenueById($request->getParam('venue')), $this->eventManager->getSupporterByID($request->getParam('supporter')));
             $this->eventService->createEvent($event);
             if (!$request->getParam('meetup_id')) {
                 if ((int) $this->eventService->createMeetup()->getStatusCode() !== 201) {
                     throw new \Exception('Could not create meetup event.');
                 }
             } else {
                 // Do not create a meetup
                 $this->eventService->getMeetupEvent()->setEventID((int) $request->getParam('meetup_id'));
             }
             if ((int) $this->eventService->createJoindinEvent($this->eventSettings['name'], $this->eventSettings['description'])->getStatusCode() !== 201) {
                 $this->flash->addMessage('event', 'Could not create Joindin event. Please try again.');
                 return $response->withStatus(302)->withHeader('Location', '/create-event?meetup_id=' . $this->eventService->getMeetupEvent()->getMeetupEventID());
             }
             if ((int) $this->eventService->createJoindinTalk()->getStatusCode() !== 201) {
                 // TODO
                 // Delete meetup event and JoindIn event just created.
                 throw new \Exception('Could not create Joindin talk.');
             }
             $eventEntity = $this->eventService->updateEvents();
             return $response->withStatus(302)->withHeader('Location', '/event/' . $eventEntity->getId());
         } catch (\Exception $e) {
             $frmErrors = $validator->getErrors();
             $errors[] = $e->getMessage();
         }
     }
     $nameKey = $this->csrf->getTokenNameKey();
     $valueKey = $this->csrf->getTokenValueKey();
     $name = $request->getAttribute($nameKey);
     $value = $request->getAttribute($valueKey);
     $this->view->render($response, 'admin/create-event.twig', ['speakers' => $speakers, 'venues' => $venues, 'eventInfo' => $eventInfo, 'supporters' => $supporters, 'nameKey' => $nameKey, 'valueKey' => $valueKey, 'name' => $name, 'value' => $value, 'errors' => $errors, 'frmErrors' => $frmErrors]);
     return $response;
 }
 public function testCanCreateAJoindinEvent()
 {
     $eventDefaults = $this->settings['settings']['events'];
     $event = $this->getEvent();
     $this->service->createEvent($event);
     $this->service->getMeetupEvent()->setEventLocation('https://api.meetup.com/2/event/226158970/');
     $this->service->createJoindinEvent($eventDefaults['title'], $eventDefaults['description']);
     $this->service->createJoindinTalk();
     $eventEntity = $this->service->updateEvents();
 }