/** {@inheritDoc} */
 public function export()
 {
     $parentExport = parent::export();
     $export = [];
     foreach ($parentExport as $property => $value) {
         if (!isset($this->changedProperties[$property]) || true !== $this->changedProperties[$property]) {
             continue;
         }
         $export[$property] = $value;
     }
     return $export;
 }
Ejemplo n.º 2
0
 private function requestEvents($url, array $params = [])
 {
     $request = $this->guzzle->createRequest('GET', $url, $params);
     $response = $this->guzzle->send($request);
     if (200 > $response->getStatusCode() || 300 <= $response->getStatusCode()) {
         throw new ApiErrorException($response);
     }
     $result = $response->json();
     $list = new ArrayCollection();
     foreach ($result['value'] as $item) {
         $list[$item['Id']] = Event::hydrate($item);
     }
     return $list;
 }
Ejemplo n.º 3
0
 /** {@inheritDoc} */
 public function persist(AbstractEvent $event, array $options = [])
 {
     if (!$event instanceof Event) {
         throw new InvalidArgumentException('Wrong event provided, expected an office event');
     }
     $params = ['headers' => ['Content-Type' => 'application/json'], 'body' => json_encode($event->export())];
     $method = 'POST';
     $url = sprintf('calendars/%s/events', $event->getCalendar()->getId());
     if (null !== $event->getId()) {
         $method = 'PATCH';
         $url = sprintf('%s/%s', $url, $event->getId());
     }
     $request = $this->guzzle->createRequest($method, $url, $params);
     $response = $this->guzzle->send($request);
     $this->handleResponse($response);
     return Event::hydrate($response->json());
 }