Example #1
0
 /**
  * @param EventCollection $collection
  * @return EventCollection
  */
 public function getEvents(EventCollection $collection)
 {
     /** @var Link $link */
     foreach ($collection->getLinks() as $link) {
         if ($link->rel == 'self') {
             $self = $link;
             break;
         }
     }
     if (!isset($self)) {
         return $collection;
     }
     $raw = $this->getJSON($this->baseURL . $self->getUrl());
     $collection->setItemTotalCount($raw->itemTotalCount);
     foreach ($raw->items as $item) {
         $event = new Event();
         $event->contentType = $item->contentType;
         $event->createdAt = $item->createdAt;
         $event->data = $item->data;
         $event->emitterId = $item->emitterId;
         $event->id = $item->id;
         $event->identifier = $item->identifier;
         $event->name = $item->name;
         $collection->addItem($event);
     }
     return $collection;
 }
Example #2
0
 public function getEvents(EventCollection $collection)
 {
     $params = ['offset' => $collection->getOffset(), 'count' => $collection->getItemPerPage()];
     $query = '
       SELECT
         SQL_CALC_FOUND_ROWS
           e.`id`
         , e.`data`
         , e.`name`
         , e.`identifier`
         , e.`createdAt`
         , e.`contentType`
         FROM `event` e WHERE 1=1 ';
     if ($name = $collection->getName()) {
         $query .= ' AND e.`name` LIKE :name';
         $params['name'] = $name;
     }
     if ($id = $collection->getId()) {
         $query .= ' AND e.`id` = :id';
         $params['id'] = $id;
     }
     if ($identifier = $collection->getIdentifier()) {
         $query .= ' AND e.`identifier` = :identifier';
         $params['identifier'] = $identifier;
     }
     if ($scope = $collection->getScope()) {
         $query .= ' AND e.`name` LIKE  :scope';
         $params['scope'] = $scope;
     }
     if ($sort = $collection->getSort()) {
         $query .= sprintf(' ORDER BY `%s` ', $sort);
         if ($dir = $collection->getDir()) {
             $query .= ' ' . $dir;
         }
     }
     $query .= ' LIMIT :offset, :count';
     $stmt = $this->adapter->prepare($query);
     $stmt->execute($params);
     while ($row = $stmt->fetch()) {
         $collection->addItem(Helper::createEventFromDTO($row));
     }
     $collection->setItemTotalCount($this->adapter->query('SELECT FOUND_ROWS()')->fetch(PDO::FETCH_COLUMN));
     return $collection;
 }