vendor/uvdesk/core-framework/Repository/SupportPrivilegeRepository.php line 20

Open in your IDE?
  1. <?php
  2. namespace Webkul\UVDesk\CoreFrameworkBundle\Repository;
  3. use Doctrine\ORM\EntityRepository;
  4. use Doctrine\Common\Collections;
  5. use Doctrine\ORM\Tools\Pagination\Paginator;
  6. use Doctrine\Common\Collections\Criteria;
  7. /**
  8.  * AgentPrivilegeRepository
  9.  *
  10.  * This class was generated by the Doctrine ORM. Add your own custom
  11.  * repository methods below.
  12.  */
  13. class SupportPrivilegeRepository extends \Doctrine\ORM\EntityRepository
  14. {
  15.     public $safeFields = array('page','limit','sort','order','direction');
  16.     const LIMIT 10;
  17.     public function getAllPrivileges(\Symfony\Component\HttpFoundation\ParameterBag $obj null$container) {
  18.     
  19.         $json = array();
  20.         $qb $this->getEntityManager()->createQueryBuilder();
  21.         $qb->select('ap')->from($this->getEntityName(), 'ap');
  22.         $data $obj->all();
  23.         $data array_reverse($data);
  24.         foreach ($data as $key => $value) {
  25.             if(!in_array($key,$this->safeFields)) {
  26.                 if($key!='dateUpdated' AND $key!='dateAdded' AND $key!='search') {
  27.                     $qb->Andwhere('ap.'.$key.' = :'.$key);
  28.                     $qb->setParameter($key$value);
  29.                 } else {
  30.                     if($key == 'search') {
  31.                         $qb->orwhere('ap.name'.' LIKE :name');
  32.                         $qb->setParameter('name''%'.urldecode($value).'%');    
  33.                         $qb->orwhere('ap.description'.' LIKE :description');
  34.                         $qb->setParameter('description''%'.urldecode(trim($value)).'%');
  35.                     }
  36.                 }
  37.             }
  38.         }   
  39.         if(!isset($data['sort'])){
  40.             $qb->orderBy('ap.createdAt',Criteria::DESC);
  41.         }
  42.         $paginator  $container->get('knp_paginator');
  43.         $results $paginator->paginate(
  44.             $qb,
  45.             isset($data['page']) ? $data['page'] : 1,
  46.             self::LIMIT,
  47.             array('distinct' => false)
  48.         );
  49.         $paginationData $results->getPaginationData();
  50.         $queryParameters $results->getParams();
  51.         $paginationData['url'] = '#'.$container->get('uvdesk.service')->buildPaginationQuery($queryParameters);
  52.         $parsedCollection array_map(function($privilege) {
  53.             return [
  54.                 'id' => $privilege->getId(),
  55.                 'name' => $privilege->getName(),
  56.                 'description' => $privilege->getDescription(),
  57.             ];
  58.         }, $results->getItems()); 
  59.        
  60.         $json['privileges']         = $parsedCollection;
  61.         $json['pagination_data']    = $paginationData;
  62.       
  63.         return $json;
  64.     }
  65. }