Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
CaseManagement.php
Go to the documentation of this file.
1 <?php
6 namespace Magento\Signifyd\Model;
7 
13 use Magento\Signifyd\Api\Data\CaseInterfaceFactory;
16 
22 {
26  private $caseRepository;
27 
31  private $caseFactory;
32 
36  private $filterBuilder;
37 
41  private $searchCriteriaBuilder;
42 
50  public function __construct(
51  CaseRepositoryInterface $caseRepository,
52  CaseInterfaceFactory $caseFactory,
53  FilterBuilder $filterBuilder,
54  SearchCriteriaBuilder $searchCriteriaBuilder
55  ) {
56  $this->caseRepository = $caseRepository;
57  $this->caseFactory = $caseFactory;
58  $this->searchCriteriaBuilder = $searchCriteriaBuilder;
59  $this->filterBuilder = $filterBuilder;
60  }
61 
65  public function create($orderId)
66  {
68  $case = $this->caseFactory->create();
69  $case->setOrderId($orderId)
71  ->setGuaranteeDisposition(CaseInterface::GUARANTEE_PENDING);
72  try {
73  return $this->caseRepository->save($case);
74  } catch (DuplicateException $e) {
75  throw new AlreadyExistsException(__('This order already has associated case entity'), $e);
76  }
77  }
78 
82  public function getByOrderId($orderId)
83  {
84  $filters = [
85  $this->filterBuilder->setField('order_id')
86  ->setValue($orderId)
87  ->create()
88  ];
89  $searchCriteria = $this->searchCriteriaBuilder->addFilters($filters)->create();
90  $items = $this->caseRepository->getList($searchCriteria)->getItems();
91  return !empty($items) ? array_pop($items) : null;
92  }
93 }
__construct(CaseRepositoryInterface $caseRepository, CaseInterfaceFactory $caseFactory, FilterBuilder $filterBuilder, SearchCriteriaBuilder $searchCriteriaBuilder)
$case
__()
Definition: __.php:13
$caseRepository
$searchCriteria
$caseFactory
$filters
Definition: uploader.phtml:11
$searchCriteriaBuilder
$items