From 6e58720548bcd512070c9749c77a2dfc93c7a278 Mon Sep 17 00:00:00 2001 From: igorbunov Date: Mon, 17 Feb 2025 21:12:58 +0200 Subject: [PATCH] add client name and version to all headers. Closes #37 --- README.md | 5 +++-- src/CheckboxJsonApi.php | 14 ++++---------- src/Config.php | 7 +++++++ 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index deca28e..8a28dfe 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,9 @@ $config = new \igorbunov\Checkbox\Config([ \igorbunov\Checkbox\Config::LOGIN => 'логин кассира', \igorbunov\Checkbox\Config::PASSWORD => 'пароль кассира', //or \igorbunov\Checkbox\Config::PINCODE => 02301230440, - \igorbunov\Checkbox\Config::LICENSE_KEY => 'ключ лицензии кассы' + \igorbunov\Checkbox\Config::LICENSE_KEY => 'ключ лицензии кассы', + \igorbunov\Checkbox\Config::HEADER_CLIENT_NAME => 'Igorbunov Custom SDK', // не обязательный (Igorbunov Custom SDK по умолчанию) + \igorbunov\Checkbox\Config::HEADER_CLIENT_VERSION => '1.3.7', // не обязательный ]); ``` @@ -599,4 +601,3 @@ composer unit-tests composer all-tests ``` - diff --git a/src/CheckboxJsonApi.php b/src/CheckboxJsonApi.php index 05b7468..250e51a 100644 --- a/src/CheckboxJsonApi.php +++ b/src/CheckboxJsonApi.php @@ -3,12 +3,9 @@ namespace igorbunov\Checkbox; use GuzzleHttp\Client; -use igorbunov\Checkbox\Errors\AlreadyOpenedShift; -use igorbunov\Checkbox\Errors\BadRequest; use igorbunov\Checkbox\Errors\BadRequestExceptionFactory; use igorbunov\Checkbox\Errors\EmptyResponse; use igorbunov\Checkbox\Errors\InvalidCredentials; -use igorbunov\Checkbox\Errors\NoActiveShift; use igorbunov\Checkbox\Errors\Validation; use igorbunov\Checkbox\Mappers\Cashier\CashierMapper; use igorbunov\Checkbox\Mappers\CashRegisters\CashRegisterInfoMapper; @@ -51,7 +48,6 @@ use igorbunov\Checkbox\Models\Transactions\Transactions; use igorbunov\Checkbox\Models\Transactions\TransactionsQueryParams; use Psr\Http\Message\ResponseInterface; -use Psr\Http\Message\StreamInterface; class CheckboxJsonApi { @@ -99,7 +95,9 @@ public function __construct(Config $config, int $connectTimeoutSeconds = 5) 'connect_timeout' => $this->connectTimeout, 'headers' => [ 'Content-Type' => 'application/json', - 'X-License-Key' => $this->config->get('licenseKey') + 'X-License-Key' => $this->config->get(Config::LICENSE_KEY), + 'X-Client-Name' => $this->config->get(Config::HEADER_CLIENT_NAME), + 'X-Client-Version' => $this->config->get(Config::HEADER_CLIENT_VERSION), ] ]; } @@ -586,14 +584,10 @@ public function getAllTaxes(): ?GoodTaxes public function createXReport(): ?ZReport { - $options = $this->requestOptions; - $options['headers']['X-Client-Name'] = 'Igorbunov Custom SDK'; - $options['headers']['X-Client-Version'] = '1.0.0'; - $response = $this->sendRequest( self::METHOD_POST, $this->routes->createXReport(), - $options + $this->requestOptions ); $jsonResponse = json_decode($response->getBody()->getContents(), true); diff --git a/src/Config.php b/src/Config.php index 6ff9c3f..06a4ca8 100755 --- a/src/Config.php +++ b/src/Config.php @@ -14,6 +14,8 @@ class Config public const PASSWORD = 'password'; public const PINCODE = 'pin_code'; public const LICENSE_KEY = 'licenseKey'; + public const HEADER_CLIENT_NAME = 'header_client_name'; + public const HEADER_CLIENT_VERSION = 'header_client_version'; /** * Constructor @@ -24,6 +26,11 @@ class Config public function __construct(array $data) { $this->data = $data; + + if (!array_key_exists(self::HEADER_CLIENT_NAME, $data)) { + $data[self::HEADER_CLIENT_NAME] = 'Igorbunov Custom SDK'; + $data[self::HEADER_CLIENT_VERSION] = '1.3.7'; + } } public function get(string $name): string