Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
CommentRepository.php
Go to the documentation of this file.
1 <?php
7 
15 use Magento\Sales\Api\Data\CreditmemoCommentInterfaceFactory;
16 use Magento\Sales\Api\Data\CreditmemoCommentSearchResultInterfaceFactory;
20 use Psr\Log\LoggerInterface;
21 
26 {
30  private $commentResource;
31 
35  private $commentFactory;
36 
40  private $searchResultFactory;
41 
45  private $collectionProcessor;
46 
50  private $creditmemoCommentSender;
51 
55  private $creditmemoRepository;
56 
60  private $logger;
61 
71  public function __construct(
72  CreditmemoCommentResourceInterface $commentResource,
73  CreditmemoCommentInterfaceFactory $commentFactory,
74  CreditmemoCommentSearchResultInterfaceFactory $searchResultFactory,
75  CollectionProcessorInterface $collectionProcessor,
76  CreditmemoCommentSender $creditmemoCommentSender = null,
77  CreditmemoRepositoryInterface $creditmemoRepository = null,
78  LoggerInterface $logger = null
79  ) {
80  $this->commentResource = $commentResource;
81  $this->commentFactory = $commentFactory;
82  $this->searchResultFactory = $searchResultFactory;
83  $this->collectionProcessor = $collectionProcessor;
84  $this->creditmemoCommentSender = $creditmemoCommentSender
85  ?: ObjectManager::getInstance()->get(CreditmemoCommentSender::class);
86  $this->creditmemoRepository = $creditmemoRepository
87  ?: ObjectManager::getInstance()->get(CreditmemoRepositoryInterface::class);
88  $this->logger = $logger ?: ObjectManager::getInstance()->get(LoggerInterface::class);
89  }
90 
94  public function get($id)
95  {
96  $entity = $this->commentFactory->create();
97  $this->commentResource->load($entity, $id);
98  return $entity;
99  }
100 
105  {
106  $searchResult = $this->searchResultFactory->create();
107  $this->collectionProcessor->process($searchCriteria, $searchResult);
108  $searchResult->setSearchCriteria($searchCriteria);
109  return $searchResult;
110  }
111 
115  public function delete(CreditmemoCommentInterface $entity)
116  {
117  try {
118  $this->commentResource->delete($entity);
119  } catch (\Exception $e) {
120  throw new CouldNotDeleteException(__('Could not delete the comment.'), $e);
121  }
122  return true;
123  }
124 
129  {
130  try {
131  $this->commentResource->save($entity);
132  } catch (\Exception $e) {
133  throw new CouldNotSaveException(__('Could not save the creditmemo comment.'), $e);
134  }
135 
136  try {
137  $creditmemo = $this->creditmemoRepository->get($entity->getParentId());
138  $this->creditmemoCommentSender->send($creditmemo, $entity->getIsCustomerNotified(), $entity->getComment());
139  } catch (\Exception $exception) {
140  $this->logger->critical($exception);
141  }
142 
143  return $entity;
144  }
145 }
getList(SearchCriteriaInterface $searchCriteria)
$id
Definition: fieldset.phtml:14
__construct(CreditmemoCommentResourceInterface $commentResource, CreditmemoCommentInterfaceFactory $commentFactory, CreditmemoCommentSearchResultInterfaceFactory $searchResultFactory, CollectionProcessorInterface $collectionProcessor, CreditmemoCommentSender $creditmemoCommentSender=null, CreditmemoRepositoryInterface $creditmemoRepository=null, LoggerInterface $logger=null)
__()
Definition: __.php:13
$searchCriteria
$entity
Definition: element.phtml:22