public function applyFiltersAndOrderBy(QueryBuilder $queryBuilder, ResourceEvent $event, $entityClass, $parameters) { $metadata = $this->getObjectManager()->getClassMetadata($entityClass); $query = $event->getRequest()->getQuery(); $this->getFilterManager()->filter($queryBuilder, $metadata, $query['filter']); $this->getOrderByManager()->orderBy($queryBuilder, $metadata, $query['order-by']); }
/** * @param string $entityClass * @param array $data * * @return array */ public function filter(ResourceEvent $event, $entityClass, $data) { $validate = $this->validateOAuth2(); if ($validate instanceof ApiProblem) { return $validate; } $request = $event->getRequest()->getQuery()->toArray(); $identity = $event->getIdentity()->getAuthenticationIdentity(); $data->user = $identity['user_id']; return $data; }
/** * {@inheritDoc} */ public function createQuery(ResourceEvent $event, $entityClass, $parameters) { $request = $event->getRequest()->getQuery()->toArray(); $queryBuilder = $this->getObjectManager()->createQueryBuilder(); $queryBuilder->select('row')->from($entityClass, 'row'); if (isset($request[$this->getFilterKey()])) { $metadata = $this->getObjectManager()->getClassMetadata($entityClass); $this->getFilterManager()->filter($queryBuilder, $metadata, $request[$this->getFilterKey()]); } if (isset($request[$this->getOrderByKey()])) { $metadata = $this->getObjectManager()->getClassMetadata($entityClass); $this->getOrderByManager()->orderBy($queryBuilder, $metadata, $request[$this->getOrderByKey()]); } return $queryBuilder; }
/** * @depends testRequestIsMutable */ public function testRequestIsNullable(ResourceEvent $event) { $event->setRequest(null); $this->assertNull($event->getRequest()); }