Ejemplo n.º 1
0
 /**
  * Creates new event in given calendar.
  *
  * @ApiDoc(
  *   resource=true,
  *   description="Creates new event in given calendar",
  *   parameters={
  *      {"name"="title", "dataType"="string", "description"="event title", "required"=true},
  *      {"name"="startTime", "dataType"="timestamp", "description"="event start time", "required"=true},
  *      {"name"="endTime", "dataType"="timestamp", "description"="event end time", "required"=true},
  *      {"name"="description", "dataType"="string", "description"="event description", "required"=false},
  *      {"name"="location", "dataType"="string", "description"="event location", "required"=false}
  *   },
  *   statusCodes={
  *      200="Returned when successful",
  *      400="Returned on invalid request",
  *      404="Returned when room with given id does not exist"
  *   }
  * )
  */
 public function postCalendarsEventAction($calendarId, Request $request)
 {
     $calendarIntegration = new CalendarIntergration();
     // todo: check if calendar exists, else 404
     $eventData = $this->retrieveEventData($request);
     $this->validateEventData($eventData);
     $event = new Event($eventData['title'], new \DateTime('@' . $eventData['startTime'], new \DateTimeZone('Europe/Warsaw')), new \DateTime('@' . $eventData['endTime'], new \DateTimeZone('Europe/Warsaw')));
     if (!empty($eventData['description'])) {
         $event->setLocation($eventData['description']);
     }
     if (!empty($eventData['location'])) {
         $event->setLocation($eventData['location']);
     }
     try {
         $calendarIntegration->createEvent($calendarId, $event);
     } catch (\Exception $e) {
         throw new HttpException(500, $e->getMessage());
     }
     $view = $this->view(null, 204);
     return $this->handleView($view);
 }
Ejemplo n.º 2
0
 public function listCalendarEvents($calendarId)
 {
     $optParams = array('maxResults' => 10, 'orderBy' => 'startTime', 'singleEvents' => TRUE, 'timeMin' => date('c'));
     $results = $this->service->events->listEvents($calendarId, $optParams);
     $events = [];
     foreach ($results->getItems() as $event) {
         $apiEvent = new ApiEntity\Event($event->getSummary(), new \DateTime('@' . strtotime($event->start->dateTime), new \DateTimeZone('Europe/Warsaw')), new \DateTime('@' . strtotime($event->end->dateTime), new \DateTimeZone('Europe/Warsaw')));
         $apiEvent->setId($event->getId());
         $apiEvent->setCreatedTime(new \DateTime('@' . strtotime($event->created), new \DateTimeZone('Europe/Warsaw')));
         $apiEvent->setDescription($event->description);
         $apiEvent->setLocation($event->location);
         $events[] = $apiEvent;
     }
     return $events;
 }