Collection.php 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <?php
  2. /**
  3. * Refer to LICENSE.txt distributed with the Temando Shipping module for notice of license
  4. */
  5. namespace Temando\Shipping\Model\ResourceModel\Carrier\Grid;
  6. use Magento\Framework\Api\FilterBuilder;
  7. use Magento\Framework\Api\SearchCriteriaBuilder;
  8. use Magento\Framework\Api\SearchCriteriaInterface;
  9. use Magento\Framework\Data\Collection\EntityFactoryInterface;
  10. use Magento\Framework\Message\ManagerInterface;
  11. use Temando\Shipping\Model\CarrierInterface;
  12. use Temando\Shipping\Model\ResourceModel\Repository\CarrierRepositoryInterface;
  13. use Temando\Shipping\Model\ResourceModel\Webservice\Collection as ApiCollection;
  14. /**
  15. * Temando Carrier Resource Collection
  16. *
  17. * @package Temando\Shipping\Model
  18. * @author Christoph Aßmann <christoph.assmann@netresearch.de>
  19. * @author Sebastian Ertner <sebastian.ertner@netresearch.de>
  20. * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
  21. * @link http://www.temando.com/
  22. */
  23. class Collection extends ApiCollection
  24. {
  25. /**
  26. * @var CarrierRepositoryInterface
  27. */
  28. private $carrierRepository;
  29. /**
  30. * Collection constructor.
  31. * @param EntityFactoryInterface $entityFactory
  32. * @param ManagerInterface $messageManager
  33. * @param CarrierRepositoryInterface $carrierRepository
  34. * @param FilterBuilder $filterBuilder
  35. * @param SearchCriteriaBuilder $searchCriteriaBuilder
  36. */
  37. public function __construct(
  38. EntityFactoryInterface $entityFactory,
  39. ManagerInterface $messageManager,
  40. FilterBuilder $filterBuilder,
  41. SearchCriteriaBuilder $searchCriteriaBuilder,
  42. CarrierRepositoryInterface $carrierRepository
  43. ) {
  44. $this->carrierRepository = $carrierRepository;
  45. parent::__construct($entityFactory, $messageManager, $filterBuilder, $searchCriteriaBuilder);
  46. }
  47. /**
  48. * @param SearchCriteriaInterface $criteria
  49. *
  50. * @return CarrierInterface[]
  51. */
  52. public function fetchData(SearchCriteriaInterface $criteria)
  53. {
  54. $carriers = $this->carrierRepository->getList(
  55. $criteria->getCurrentPage(),
  56. $criteria->getPageSize()
  57. );
  58. return $carriers;
  59. }
  60. }