19 use Psr\Log\LoggerInterface;
33 private static $eventTopicTest =
'cases/test';
38 private $webhookRequest;
48 private $webhookMessageReader;
53 private $caseUpdatingServiceFactory;
58 private $webhookRequestValidator;
63 private $caseRepository;
83 LoggerInterface $logger,
90 parent::__construct($context);
91 $this->webhookRequest = $webhookRequest;
93 $this->webhookMessageReader = $webhookMessageReader;
94 $this->caseUpdatingServiceFactory = $caseUpdatingServiceFactory;
95 $this->webhookRequestValidator = $webhookRequestValidator;
107 if ($this->config->isDebugModeEnabled()) {
108 $this->logger->debug($this->webhookRequest->getEventTopic() .
'|' . $this->webhookRequest->getBody());
111 if (!$this->webhookRequestValidator->validate($this->webhookRequest)) {
116 $webhookMessage = $this->webhookMessageReader->read($this->webhookRequest);
117 if ($webhookMessage->getEventTopic() === self::$eventTopicTest) {
121 $data = $webhookMessage->getData();
122 if (empty(
$data[
'caseId'])) {
127 $case = $this->caseRepository->getByCaseId(
$data[
'caseId']);
128 if (
$case ===
null) {
133 $caseUpdatingService = $this->caseUpdatingServiceFactory->create($webhookMessage->getEventTopic());
138 $this->logger->critical($e);
_redirect($path, $arguments=[])
__construct(Context $context, WebhookRequest $webhookRequest, LoggerInterface $logger, WebhookMessageReader $webhookMessageReader, UpdatingServiceFactory $caseUpdatingServiceFactory, WebhookRequestValidator $webhookRequestValidator, CaseRepositoryInterface $caseRepository, Config $config)
createCsrfValidationException(RequestInterface $request)
validateForCsrf(RequestInterface $request)