Skip to content

Latest commit

 

History

History
383 lines (151 loc) · 8.61 KB

File metadata and controls

383 lines (151 loc) · 8.61 KB

Mindbox\Clients\AbstractMindboxClient

Абстрактный класс, содержащий реализацию общих методов обработки запросов для различных версий API.

Class AbstractMindboxClient

  • Class name: AbstractMindboxClient
  • Namespace: Mindbox\Clients
  • This is an abstract class

Constants

API_VERSION

const API_VERSION = ''

Properties

$secretKey

protected string $secretKey
  • Visibility: protected

$httpClient

protected \Mindbox\HttpClients\IHttpClient $httpClient
  • Visibility: protected

$logger

protected \Psr\Log\LoggerInterface $logger
  • Visibility: protected

$lastResponse

protected \Mindbox\MindboxResponse $lastResponse
  • Visibility: protected

$preparedRequest

protected \Mindbox\MindboxRequest $preparedRequest
  • Visibility: protected

$responseType

protected string $responseType
  • Visibility: protected

Methods

__construct

mixed Mindbox\Clients\AbstractMindboxClient::__construct(string $secretKey, \Mindbox\HttpClients\IHttpClient $httpClient, \Psr\Log\LoggerInterface $logger)

Конструктор AbstractMindboxClient.

  • Visibility: public

Arguments

  • $secretKey string - <p>Секретный ключ.</p>
  • $httpClient Mindbox\HttpClients\IHttpClient - <p>Экземпляр HTTP клиента.</p>
  • $logger Psr\Log\LoggerInterface - <p>Экземпляр логгера.</p>

prepareRequest

\Mindbox\Clients\AbstractMindboxClient Mindbox\Clients\AbstractMindboxClient::prepareRequest(string $method, string $operationName, \Mindbox\DTO\DTO|null $body, string $additionalUrl, array $queryParams, boolean $isSync, boolean $addDeviceUUID)

Метод формирует объект запроса и записывает в $preparedRequest.

  • Visibility: public

Arguments

  • $method string - <p>HTTP метод.</p>
  • $operationName string - <p>Название операции.</p>
  • $body Mindbox\DTO\DTO|null - <p>Тело запроса в виде DTO.</p>
  • $additionalUrl string - <p>Дополнительный URL запроса.</p>
  • $queryParams array - <p>GET параметры запроса.</p>
  • $isSync boolean - <p>Флаг: синхронный/асинхронный запрос.</p>
  • $addDeviceUUID boolean - <p>Флаг: добавлять ли в запрос DeviceUUID.</p>

setRequest

\Mindbox\Clients\AbstractMindboxClient Mindbox\Clients\AbstractMindboxClient::setRequest(\Mindbox\MindboxRequest $request)

Сеттер для $preparedRequest.

  • Visibility: public

Arguments

getRequest

\Mindbox\MindboxRequest Mindbox\Clients\AbstractMindboxClient::getRequest()

Геттер для $preparedRequest.

  • Visibility: public

sendRequest

\Mindbox\MindboxResponse Mindbox\Clients\AbstractMindboxClient::sendRequest()

Передача подготовленного запроса в HTTP клиент для отправки, обработка ответа.

  • Visibility: public

prepareQueryParams

array Mindbox\Clients\AbstractMindboxClient::prepareQueryParams(string $operation, array $queryParams, boolean $addDeviceUUID)

Абстрактный метод по формированию массива GET параметров запроса.

  • Visibility: protected
  • This method is abstract.

Arguments

  • $operation string - <p>Название операции.</p>
  • $queryParams array - <p>GET параметры, переданные пользователем.</p>
  • $addDeviceUUID boolean - <p>Флаг: добавлять ли в запрос DeviceUUID.</p>

prepareUrl

string Mindbox\Clients\AbstractMindboxClient::prepareUrl(string $additionalUrl, array $queryParams, boolean $isSync)

Абстрактный метод по формированию полного URL запроса.

  • Visibility: protected
  • This method is abstract.

Arguments

  • $additionalUrl string - <p>Дополнительный URL запроса.</p>
  • $queryParams array - <p>GET параметры, переданные пользователем.</p>
  • $isSync boolean - <p>Флаг: синхронный/асинхронный запрос.</p>

prepareHeaders

array Mindbox\Clients\AbstractMindboxClient::prepareHeaders(boolean $addDeviceUUID)

Подготовка массива заголовков запроса.

  • Visibility: protected

Arguments

  • $addDeviceUUID boolean - <p>Флаг: добавлять ли в запрос DeviceUUID.</p>

prepareAuthorizationHeader

string Mindbox\Clients\AbstractMindboxClient::prepareAuthorizationHeader()

Абстрактный метод по формированию содержимого заголовка Authorization.

  • Visibility: protected
  • This method is abstract.

prepareBody

string Mindbox\Clients\AbstractMindboxClient::prepareBody(\Mindbox\DTO\DTO|null $body)

Конвертация тела запроса в формат, пригодный для HTTP клиента (json, xml).

  • Visibility: protected
  • This method is abstract.

Arguments

  • $body Mindbox\DTO\DTO|null - <p>Тело запроса в виде DTO.</p>

createRequest

\Mindbox\MindboxRequest Mindbox\Clients\AbstractMindboxClient::createRequest(string $url, string $method, string $body, array $headers)

Инициализация экземпляра запроса.

  • Visibility: protected

Arguments

  • $url string - <p>Полный URL запроса.</p>
  • $method string - <p>Метод запроса.</p>
  • $body string - <p>Тело запроса.</p>
  • $headers array - <p>Заголовки запроса.</p>

parseRawResponse

\Mindbox\MindboxResponse Mindbox\Clients\AbstractMindboxClient::parseRawResponse(\Mindbox\MindboxRequest $request, \Mindbox\HttpClients\HttpClientRawResponse $rawResponse)

Парсинг и первичная обработка сырого ответа от HTTP клиента:

  • запись результата запроса в лог;
  • генерация исключения при наличии ошибки в ответе;
  • инициализация экземпляра MindboxResponse, содержащего отформатированные данные ответа.
  • Visibility: protected

Arguments

setLastResponse

mixed Mindbox\Clients\AbstractMindboxClient::setLastResponse(\Mindbox\MindboxResponse $response)

Сеттер для $lastResponse.

  • Visibility: private

Arguments

getLastResponse

\Mindbox\MindboxResponse Mindbox\Clients\AbstractMindboxClient::getLastResponse()

Геттер для $lastResponse.

  • Visibility: public

prepareResponseBody

array Mindbox\Clients\AbstractMindboxClient::prepareResponseBody(string $rawBody)

Конвертация тела ответа в массив.

  • Visibility: protected
  • This method is abstract.

Arguments

  • $rawBody string - <p>Сырое тело ответа.</p>

prepareContext

array Mindbox\Clients\AbstractMindboxClient::prepareContext(\Mindbox\MindboxResponse $response)

Подготовка контекста запроса для логгера.

  • Visibility: private

Arguments

setResponseType

mixed Mindbox\Clients\AbstractMindboxClient::setResponseType(string $type)

Сеттер для responseType.

  • Visibility: public

Arguments

  • $type string - <p>Имя потомка MindboxResponse.</p>