Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
PaymentTokenRepository.php
Go to the documentation of this file.
1 <?php
6 namespace Magento\Vault\Model;
7 
13 use Magento\Vault\Api\Data\PaymentTokenSearchResultsInterfaceFactory;
17 use Magento\Vault\Model\ResourceModel\PaymentToken\CollectionFactory;
18 
24 {
28  protected $resourceModel;
29 
34 
39 
43  protected $filterBuilder;
44 
49 
53  protected $collectionFactory;
54 
58  private $collectionProcessor;
59 
69  public function __construct(
74  PaymentTokenSearchResultsInterfaceFactory $searchResultsFactory,
75  CollectionFactory $collectionFactory,
76  CollectionProcessorInterface $collectionProcessor = null
77  ) {
78  $this->resourceModel = $resourceModel;
79  $this->paymentTokenFactory = $paymentTokenFactory;
80  $this->filterBuilder = $filterBuilder;
81  $this->searchCriteriaBuilder = $searchCriteriaBuilder;
82  $this->searchResultsFactory = $searchResultsFactory;
83  $this->collectionFactory = $collectionFactory;
84  $this->collectionProcessor = $collectionProcessor ?: $this->getCollectionProcessor();
85  }
86 
93  public function getList(\Magento\Framework\Api\SearchCriteriaInterface $searchCriteria)
94  {
96  $collection = $this->collectionFactory->create();
97  $this->collectionProcessor->process($searchCriteria, $collection);
99  $searchResults = $this->searchResultsFactory->create();
100  $searchResults->setSearchCriteria($searchCriteria);
101  $searchResults->setItems($collection->getItems());
102 
103  return $searchResults;
104  }
105 
112  public function getById($entityId)
113  {
114  $tokenModel = $this->paymentTokenFactory->create();
115  $this->resourceModel->load($tokenModel, $entityId);
116  return $tokenModel;
117  }
118 
125  public function delete(Data\PaymentTokenInterface $paymentToken)
126  {
128  $tokenModel = $this->getById($paymentToken->getEntityId());
129  if (empty($tokenModel->getPublicHash())) {
130  return false;
131  }
132 
133  $tokenModel->setIsActive(false);
134  $tokenModel->setIsVisible(false);
135  $tokenModel->save();
136 
137  return true;
138  }
139 
146  public function save(Data\PaymentTokenInterface $paymentToken)
147  {
149  $this->resourceModel->save($paymentToken);
150  return $paymentToken;
151  }
152 
163  {
164  foreach ($filterGroup->getFilters() as $filter) {
165  $condition = $filter->getConditionType() ? $filter->getConditionType() : 'eq';
166  $collection->addFieldToFilter($filter->getField(), [$condition => $filter->getValue()]);
167  }
168  }
169 
176  private function getCollectionProcessor()
177  {
178  if (!$this->collectionProcessor) {
179  $this->collectionProcessor = \Magento\Framework\App\ObjectManager::getInstance()->get(
180  \Magento\Framework\Api\SearchCriteria\CollectionProcessorInterface::class
181  );
182  }
183  return $this->collectionProcessor;
184  }
185 }
save(Data\PaymentTokenInterface $paymentToken)
__construct(PaymentTokenResourceModel $resourceModel, PaymentTokenFactory $paymentTokenFactory, FilterBuilder $filterBuilder, SearchCriteriaBuilder $searchCriteriaBuilder, PaymentTokenSearchResultsInterfaceFactory $searchResultsFactory, CollectionFactory $collectionFactory, CollectionProcessorInterface $collectionProcessor=null)
addFilterGroupToCollection(FilterGroup $filterGroup, Collection $collection)
$searchCriteria
getList(\Magento\Framework\Api\SearchCriteriaInterface $searchCriteria)