Example #1
0
 /** {@inheritDoc} */
 public function getList(AbstractCriterion $criterion = null)
 {
     $items = new Field('items', $this->criteria);
     $items->addCriterion(new Field('accessRole'));
     $query = new Collection([new Collection([$items, new Field('nextPageToken'), new Field('nextSyncToken')], 'fields')]);
     if (null !== $criterion) {
         $query = $query->merge($criterion);
     }
     $response = $this->guzzle->get('users/me/calendarList', ['query' => $query->build()]);
     if (200 > $response->getStatusCode() || 300 <= $response->getStatusCode()) {
         throw new ApiErrorException($response);
     }
     $result = $response->json();
     $list = new ArrayCollection();
     foreach ($result['items'] as $item) {
         $list[$item['id']] = Calendar::hydrate($item, $this->adapter->getUser());
     }
     return $list;
 }