403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/messageservice/lib/Providers/Edna/SMS/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/messageservice/lib/Providers/Edna/SMS/Sender.php
<?php

namespace Bitrix\MessageService\Providers\Edna\SMS;

use Bitrix\Main\Error;
use Bitrix\Main\Result;
use Bitrix\Main\Text\Emoji;
use Bitrix\MessageService\Providers;
use Bitrix\MessageService\Sender\Result\MessageStatus;

class Sender extends Providers\Edna\Sender
{

	public function getMessageStatus(array $messageFields): MessageStatus
	{
		return new MessageStatus();
	}

	public function prepareMessageBodyForSave(string $text): string
	{
		return Emoji::encode($text);
	}

	protected function initializeDefaultExternalSender(): Providers\ExternalSender
	{
		return new ExternalSender(
			$this->optionManager->getOption(Providers\Constants\InternalOption::API_KEY),
			RegionHelper::getApiEndPoint(),
			$this->optionManager->getSocketTimeout(),
			$this->optionManager->getStreamTimeout()
		);
	}

	protected function getSendMessageParams(array $messageFields): Result
	{
		$cascadeResult = $this->getSenderFromSubject($messageFields['MESSAGE_FROM']);
		if (!$cascadeResult->isSuccess())
		{
			return $cascadeResult;
		}

		$params = [
			'requestId' => uniqid('', true),
			'cascadeId' => $cascadeResult->getData()['cascadeId'],
			'subscriberFilter' => [
				'address' => str_replace('+', '', $messageFields['MESSAGE_TO']),
				'type' => 'PHONE',
			],
		];
		$params['content'] = $this->getMessageContent($messageFields);

		return (new Result())->setData($params);
	}

	protected function getSendMessageMethod(array $messageFields): string
	{
		return Providers\Edna\Constants\Method::SEND_MESSAGE;
	}

	protected function isTemplateMessage(array $messageFields): bool
	{
		return false;
	}

	protected function sendHSMtoChat(array $messageFields): Result
	{
		return new Result();
	}

	/**
	 * @param array $messageFields
	 * @return array{contentType:string, text:string}
	 */
	private function getMessageContent(array $messageFields): array
	{
		return [
			'smsContent' => [
				'contentType' => Providers\Edna\Constants\ContentType::TEXT,
				'text' => $this->prepareMessageBodyForSend($messageFields['MESSAGE_BODY']),
			],
		];
	}

	private function getSenderFromSubject($subject): Result
	{
		$cascadeResult = new Result();
		if (is_numeric($subject))
		{
			$cascadeResult = $this->utils->getCascadeIdFromSubject(
				(int)$subject,
				static function(array $externalSubjectData, int $internalSubject)
				{
					return $externalSubjectData['id'] === $internalSubject;
				}
			);
		}
		elseif (is_string($subject))
		{
			$cascadeResult = $this->utils->getCascadeIdFromSubject(
				$subject,
				static function(array $externalSubjectData, string $internalSubject)
				{
					return $externalSubjectData['subject'] === $internalSubject;
				}
			);
		}
		else
		{
			$cascadeResult->addError(new Error('Invalid subject id'));
		}

		return $cascadeResult;
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit