BookmarkCleaner.php 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. <?php
  2. /**
  3. * Refer to LICENSE.txt distributed with the Temando Shipping module for notice of license
  4. */
  5. namespace Temando\Shipping\Setup;
  6. use Magento\Framework\Api\FilterBuilder;
  7. use Magento\Framework\Api\Search\SearchCriteriaBuilderFactory;
  8. use Magento\Ui\Api\BookmarkRepositoryInterface;
  9. /**
  10. * Utility for removing outdated UI Bookmark entries after UI component changes.
  11. *
  12. * @package Temando\Shipping\Setup
  13. * @author Jason Jewel <jason.jewel@temando.com>
  14. * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
  15. * @link https://www.temando.com/
  16. */
  17. class BookmarkCleaner
  18. {
  19. /**
  20. * @var BookmarkRepositoryInterface
  21. */
  22. private $bookmarkRepository;
  23. /**
  24. * @var FilterBuilder
  25. */
  26. private $filterBuilder;
  27. /**
  28. * @var SearchCriteriaBuilderFactory
  29. */
  30. private $searchCriteriaBuilderFactory;
  31. /**
  32. * BookmarkCleaner constructor.
  33. * @param BookmarkRepositoryInterface $bookmarkRepository
  34. * @param FilterBuilder $filterBuilder
  35. * @param SearchCriteriaBuilderFactory $searchCriteriaBuilderFactory
  36. */
  37. public function __construct(
  38. BookmarkRepositoryInterface $bookmarkRepository,
  39. FilterBuilder $filterBuilder,
  40. SearchCriteriaBuilderFactory $searchCriteriaBuilderFactory
  41. ) {
  42. $this->bookmarkRepository = $bookmarkRepository;
  43. $this->filterBuilder = $filterBuilder;
  44. $this->searchCriteriaBuilderFactory = $searchCriteriaBuilderFactory;
  45. }
  46. /**
  47. * Clean up the current pickup listing bookmark.
  48. *
  49. * @throws \Magento\Framework\Exception\LocalizedException
  50. */
  51. public function resetPickupGrid()
  52. {
  53. $searchCriteriaBuilder = $this->searchCriteriaBuilderFactory->create();
  54. $namespaceFilter = $this->filterBuilder
  55. ->setField('namespace')
  56. ->setConditionType('eq')
  57. ->setValue('temando_pickup_listing')
  58. ->create();
  59. $searchCriteriaBuilder->addFilter($namespaceFilter);
  60. $searchCriteria = $searchCriteriaBuilder->create();
  61. $searchResult = $this->bookmarkRepository->getList($searchCriteria);
  62. foreach ($searchResult->getItems() as $bookmark) {
  63. $this->bookmarkRepository->delete($bookmark);
  64. }
  65. }
  66. /**
  67. * Clean up the current order pickup listing bookmark.
  68. *
  69. * @throws \Magento\Framework\Exception\LocalizedException
  70. */
  71. public function resetOrderPickupGrid()
  72. {
  73. $searchCriteriaBuilder = $this->searchCriteriaBuilderFactory->create();
  74. $namespaceFilter = $this->filterBuilder
  75. ->setField('namespace')
  76. ->setConditionType('eq')
  77. ->setValue('sales_order_pickup_listing')
  78. ->create();
  79. $searchCriteriaBuilder->addFilter($namespaceFilter);
  80. $searchCriteria = $searchCriteriaBuilder->create();
  81. $searchResult = $this->bookmarkRepository->getList($searchCriteria);
  82. foreach ($searchResult->getItems() as $bookmark) {
  83. $this->bookmarkRepository->delete($bookmark);
  84. }
  85. }
  86. }