- Модуль: sale
- Путь к файлу: ~/bitrix/modules/sale/lib/delivery/rest/requestservice.php
- Класс: BitrixSaleDeliveryRestRequestService
- Вызов: RequestService::getMessage
static function getMessage(array $params, string $key): RequestsMessageMessage
{
if (
!isset($params[$key])
|| !is_array($params[$key])
|| (
(!is_string($params[$key]['SUBJECT']) || empty($params[$key]['SUBJECT']))
&& (!is_string($params[$key]['BODY']) || empty($params[$key]['BODY']))
)
)
{
throw new RestException(
sprintf('Parameter %s is not specified', $key),
self::ERROR_CODE_MESSAGE_NOT_SPECIFIED
);
}
$message = new RequestsMessageMessage();
if (!empty($params[$key]['SUBJECT']))
{
$message->setSubject($params[$key]['SUBJECT']);
}
if (!empty($params[$key]['BODY']))
{
$message->setBody($params[$key]['BODY']);
}
if (isset($params[$key]['MONEY_VALUES']) && is_array($params[$key]['MONEY_VALUES']))
{
foreach ($params[$key]['MONEY_VALUES'] as $key => $moneyValue)
{
$message->addMoneyValue(
(string)$key,
(float)$moneyValue
);
}
}
if (isset($params[$key]['DATE_VALUES']) && is_array($params[$key]['DATE_VALUES']))
{
foreach ($params[$key]['DATE_VALUES'] as $key => $dateValue)
{
if (!isset($dateValue['VALUE']) || !isset($dateValue['FORMAT']))
{
throw new RestException(
'Unexpected date value format',
self::ERROR_CODE_DATE_VALUE_UNEXPECTED_FORMAT
);
}
$message->addDateValue(
(string)$key,
(int)$dateValue['VALUE'],
(string)$dateValue['FORMAT']
);
}
}
if (isset($params[$key]['STATUS']))
{
if (!is_string($params[$key]['STATUS']['MESSAGE']) || empty($params[$key]['STATUS']['MESSAGE']))
{
throw new RestException(
'Status message is not specified',
self::ERROR_CODE_MESSAGE_STATUS_NOT_SPECIFIED
);
}
if (!is_string($params[$key]['STATUS']['SEMANTIC']) || empty($params['MESSAGE']['STATUS']['SEMANTIC']))
{
throw new RestException(
'Message status semantic is not specified',
self::ERROR_CODE_MESSAGE_STATUS_SEMANTIC_NOT_SPECIFIED
);
}
if (!in_array($params[$key]['STATUS']['SEMANTIC'], RequestsMessageStatus::getAvailableSemantics(), true))
{
throw new RestException(
sprintf('Unexpected message status semantic: %s', $params['MESSAGE']['STATUS']['SEMANTIC']),
self::ERROR_CODE_UNEXPECTED_MESSAGE_STATUS_SEMANTIC
);
}
$message->setStatus(
new RequestsMessageStatus(
$params[$key]['STATUS']['MESSAGE'],
$params[$key]['STATUS']['SEMANTIC']
)
);
}
return $message;
}