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;
 }
示例#4
0
 /**
  * @depends testRequestIsMutable
  */
 public function testRequestIsNullable(ResourceEvent $event)
 {
     $event->setRequest(null);
     $this->assertNull($event->getRequest());
 }