1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
Event.php
См. документацию.
1<?php
2
3namespace Bitrix\Im\V2\Chat\ExternalChat;
4
5use Bitrix\Im\V2\Result;
6use Bitrix\Main\Engine\Response\Converter;
7use Bitrix\Main\EventResult;
8
9abstract class Event extends \Bitrix\Main\Event
10{
11 private const TYPE_TEMPLATE = 'On#ActionName#ExternalChat#EntityType#';
12
13 public function __construct(string $entityType, $parameters)
14 {
15 parent::__construct('im', $this->formatType($entityType), $parameters);
16 }
17
18 public function hasResult(): bool
19 {
20 return $this->getFirstResult() !== null;
21 }
22
23 public function getFirstResult(): ?EventResult
24 {
25 return $this->getResults()[0] ?? null;
26 }
27
28 public function getResult(): Result
29 {
30 $result = new Result();
31 $firstResult = $this->getFirstResult();
32 if ($firstResult === null)
33 {
34 return $result;
35 }
36
37 if ($firstResult->getType() === EventResult::ERROR)
38 {
39 return $result->addError(new ExternalError(ExternalError::FROM_EVENT));
40 }
41
42 return $result->setResult($firstResult->getParameters());
43 }
44
45 protected function getParameterFromResult(string $key): mixed
46 {
47 $parameters = $this->getFirstResult()?->getParameters() ?? [];
48 if (!is_array($parameters))
49 {
50 return null;
51 }
52
53 return $parameters[$key] ?? null;
54 }
55
56 abstract protected function getActionName(): string;
57
58 protected function formatType(string $entityType): string
59 {
60 $converter = new Converter(Converter::TO_CAMEL | Converter::UC_FIRST);
61 $entityTypeInCamelCase = $converter->process($entityType);
62 $actionName = $this->getActionName();
63
64 return strtr(self::TYPE_TEMPLATE, ['#ActionName#' => $actionName, '#EntityType#' => $entityTypeInCamelCase]);
65 }
66}
__construct(string $entityType, $parameters)
Определения Event.php:13
getParameterFromResult(string $key)
Определения Event.php:45
formatType(string $entityType)
Определения Event.php:58
Определения result.php:20
Определения event.php:5
getResults()
Определения event.php:124
$parameters
Определения event.php:8
$result
Определения get_property_values.php:14
if(empty($signedUserToken)) $key
Определения quickway.php:257