gustavosantos/base-pagination-filters

This package is abandoned and no longer maintained. No replacement package was suggested.

BasePaginationFilters is a simple implementation of paging and filters to connect with service and repository.

v1.0.4 2020-01-27 13:21 UTC

This package is auto-updated.

Last update: 2021-02-04 15:28:57 UTC


README

License Minimum PHP Version

Instalação

Execute o comando:

composer require gustavosantos/base-pagination-filters

Implementação

  • Filtros

    Para utilizar os filtros, basta informar no array filters as colunas presentes/mapeadas em sua entidade.

    Na url passe o querystring:

    ?filters[]=id:123&filters[]=name:Gustavo

  • Paginação

    Para utilizar a paginação, basta informar limit e offset

    Na url passe o querystring:

    ?limit=100&offset=0

    Posteriormente conecte ao seu service ou repository:

       /**
         * @param BasePaginationInterface $pagination
         * @return array
         * @throws ProductDatabaseException
         */
        public function findAllProducts(BasePaginationInterface $pagination): array
        {
            try {
                return $this->findBy(
                    $pagination->getFilters(), $pagination->getOrderBy(),
                    $pagination->getLimit(), $pagination->getOffSet());
            } catch (ORMException $e) {
                throw new ProductDatabaseException(StatusHttp::INTERNAL_SERVER_ERROR,
                    ErrorMessage::ERROR_QUERY_ALL_RECORD, $e->getMessage());
            } catch (Exception $e) {
                throw new ProductDatabaseException(StatusHttp::INTERNAL_SERVER_ERROR,
                    ErrorMessage::ERROR_QUERY_ALL_RECORD, $e->getMessage());
            }
        }

    Chamada do método passando o parâmetro:

    $this->productRepository->findAllProducts($this->basePagination->addPagination($queryParams));