Рефакторинг исключений, новые константы ограничений
Описывать все слишком долго, TLDR:
- упрощены корневые AtolException, {BasicTooLongException => TooLongException}, {BasicTooManyException => TooManyException}
- InvalidSnoException заменён на InvalidEnumValueException
- добавлены новые константы, общий порядок изменён в соответствии с порядком упоминания в документации, ссылки на которую тоже добавлены с указанием страниц
Помимо этого, в enum-ах теперь должен быть предусмотрен метод getFfdTags()
This commit is contained in:
@@ -12,7 +12,6 @@ declare(strict_types = 1);
|
||||
namespace AtolOnline\Exceptions;
|
||||
|
||||
use Exception;
|
||||
use Throwable;
|
||||
|
||||
/**
|
||||
* Исключение, возникающее при работе с АТОЛ Онлайн
|
||||
@@ -25,28 +24,15 @@ class AtolException extends Exception
|
||||
protected array $ffd_tags = [];
|
||||
|
||||
/**
|
||||
* AtolException constructor.
|
||||
* Конструктор
|
||||
*
|
||||
* @param string $message
|
||||
* @param int $code
|
||||
* @param Throwable|null $previous
|
||||
* @param string $message Сообщение
|
||||
* @param int[] $ffd_tags Переопредление тегов ФФД
|
||||
*/
|
||||
public function __construct($message = "", $code = 0, Throwable $previous = null)
|
||||
public function __construct(string $message = '', array $ffd_tags = [])
|
||||
{
|
||||
$message = $message ?: $this->message;
|
||||
if ($this->getFfdTags()) {
|
||||
$message .= ' [FFD tags: '.implode(', ', $this->getFfdTags()).']';
|
||||
}
|
||||
parent::__construct($message, $code, $previous);
|
||||
parent::__construct(
|
||||
($message ?: $this->message) . ' [Теги ФФД: ' . implode(', ', $ffd_tags ?: $this->ffd_tags) . ']'
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Возвращает теги ФФД, с которыми связано исключение
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
protected function getFfdTags(): array
|
||||
{
|
||||
return $this->ffd_tags;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,7 +13,6 @@ namespace AtolOnline\Exceptions;
|
||||
|
||||
use AtolOnline\Api\KktResponse;
|
||||
use Exception;
|
||||
use Throwable;
|
||||
|
||||
/**
|
||||
* Исключение, возникающее при неудачной авторизации
|
||||
@@ -25,17 +24,9 @@ class AuthFailedException extends Exception
|
||||
*
|
||||
* @param KktResponse $response
|
||||
* @param string $message
|
||||
* @param int $code
|
||||
* @param Throwable|null $previous
|
||||
*/
|
||||
public function __construct(KktResponse $response, $message = "", $code = 0, Throwable $previous = null)
|
||||
public function __construct(KktResponse $response, string $message = '')
|
||||
{
|
||||
$message = $response->isValid()
|
||||
? $message
|
||||
: '[' . $response->error->code . '] ' . $response->error->text .
|
||||
'. ERROR_ID: ' . $response->error->error_id .
|
||||
'. TYPE: ' . $response->error->type;
|
||||
$code = $response->isValid() ? $code : $response->error->code;
|
||||
parent::__construct($message, $code, $previous);
|
||||
parent::__construct(($message ?: 'Ошибка авторизации: ') . ': ' . $response);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,40 +0,0 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright (c) 2020-2021 Антон Аксенов (Anthony Axenov)
|
||||
*
|
||||
* This code is licensed under MIT.
|
||||
* Этот код распространяется по лицензии MIT.
|
||||
* https://github.com/anthonyaxenov/atol-online/blob/master/LICENSE
|
||||
*/
|
||||
|
||||
declare(strict_types = 1);
|
||||
|
||||
namespace AtolOnline\Exceptions;
|
||||
|
||||
use Throwable;
|
||||
|
||||
/**
|
||||
* Исключение, возникающее при попытке указать слишком длинное что-либо
|
||||
*/
|
||||
class BasicTooLongException extends AtolException
|
||||
{
|
||||
/**
|
||||
* @var string Сообщение об ошибке
|
||||
*/
|
||||
protected $message = 'Parameter is too long';
|
||||
|
||||
/**
|
||||
* AtolTooLongException constructor.
|
||||
*
|
||||
* @param $string
|
||||
* @param $max
|
||||
* @param string $message
|
||||
* @param int $code
|
||||
* @param Throwable|null $previous
|
||||
*/
|
||||
public function __construct($string, $max, $message = "", int $code = 0, Throwable $previous = null)
|
||||
{
|
||||
parent::__construct($message ?: $this->message . ' (max length - ' . $max . ', actual length - ' .
|
||||
mb_strlen($string), $code, $previous);
|
||||
}
|
||||
}
|
||||
@@ -11,13 +11,12 @@ declare(strict_types = 1);
|
||||
|
||||
namespace AtolOnline\Exceptions;
|
||||
|
||||
use AtolOnline\Entities\CorrectionInfo;
|
||||
|
||||
/**
|
||||
* Исключение, возникающее при попытке зарегистрировать документ без данных коррекции
|
||||
* Исключение, возникающее при попытке зарегистрировать документ коррекции без соотв. данных
|
||||
*/
|
||||
class EmptyCorrectionInfoException extends AtolException
|
||||
{
|
||||
/**
|
||||
* @var string Сообщение об ошибке
|
||||
*/
|
||||
protected $message = 'Document must have correction info';
|
||||
}
|
||||
protected $message = 'Документ должен содержать объект ' . CorrectionInfo::class;
|
||||
}
|
||||
|
||||
@@ -13,19 +13,10 @@ namespace AtolOnline\Exceptions;
|
||||
|
||||
/**
|
||||
* Исключение, возникающее при попытке указать пустой email
|
||||
* @see https://online.atol.ru/files/API_atol_online_v4.pdf Документация, стр 17
|
||||
*/
|
||||
class EmptyEmailException extends AtolException
|
||||
{
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
protected array $ffd_tags = [
|
||||
1008,
|
||||
1117,
|
||||
];
|
||||
|
||||
/**
|
||||
* @var string Сообщение об ошибке
|
||||
*/
|
||||
protected $message = 'Email cannot be empty';
|
||||
}
|
||||
protected $message = 'Email не может быть пустым';
|
||||
protected array $ffd_tags = [1008, 1117];
|
||||
}
|
||||
|
||||
@@ -12,12 +12,10 @@ declare(strict_types = 1);
|
||||
namespace AtolOnline\Exceptions;
|
||||
|
||||
/**
|
||||
* Исключение, возникающее при попытке указать пустой логин ККТ
|
||||
* Исключение, возникающее при попытке указать пустой логин
|
||||
* @see https://online.atol.ru/files/API_atol_online_v4.pdf Документация, стр 12
|
||||
*/
|
||||
class EmptyLoginException extends AtolException
|
||||
{
|
||||
/**
|
||||
* @var string Сообщение об ошибке
|
||||
*/
|
||||
protected $message = 'KKT login cannot be empty';
|
||||
}
|
||||
protected $message = 'Логин не может быть пустым';
|
||||
}
|
||||
|
||||
@@ -16,8 +16,5 @@ namespace AtolOnline\Exceptions;
|
||||
*/
|
||||
class EmptyMonitorDataException extends AtolException
|
||||
{
|
||||
/**
|
||||
* @var string Сообщение об ошибке
|
||||
*/
|
||||
protected $message = 'Cannot create KKT entity without data from monitor';
|
||||
}
|
||||
protected $message = 'Не возможно создать объект ККт без данных от мониторинга';
|
||||
}
|
||||
|
||||
@@ -12,12 +12,10 @@ declare(strict_types = 1);
|
||||
namespace AtolOnline\Exceptions;
|
||||
|
||||
/**
|
||||
* Исключение, возникающее при попытке указать пустой пароль ККТ
|
||||
* Исключение, возникающее при попытке указать пустой пароль
|
||||
* @see https://online.atol.ru/files/API_atol_online_v4.pdf Документация, стр 12
|
||||
*/
|
||||
class EmptyPasswordException extends AtolException
|
||||
{
|
||||
/**
|
||||
* @var string Сообщение об ошибке
|
||||
*/
|
||||
protected $message = 'KKT password cannot be empty';
|
||||
}
|
||||
protected $message = 'Пароль не может быть пустым';
|
||||
}
|
||||
|
||||
@@ -16,8 +16,5 @@ namespace AtolOnline\Exceptions;
|
||||
*/
|
||||
class InvalidCallbackUrlException extends AtolException
|
||||
{
|
||||
/**
|
||||
* @var string Сообщение об ошибке
|
||||
*/
|
||||
protected $message = 'Invalid callback URL';
|
||||
}
|
||||
protected $message = 'Невалидный callback_url';
|
||||
}
|
||||
|
||||
@@ -1,38 +0,0 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright (c) 2020-2021 Антон Аксенов (Anthony Axenov)
|
||||
*
|
||||
* This code is licensed under MIT.
|
||||
* Этот код распространяется по лицензии MIT.
|
||||
* https://github.com/anthonyaxenov/atol-online/blob/master/LICENSE
|
||||
*/
|
||||
|
||||
declare(strict_types = 1);
|
||||
|
||||
namespace AtolOnline\Exceptions;
|
||||
|
||||
use AtolOnline\Enums\DocumentTypes;
|
||||
use Throwable;
|
||||
|
||||
/**
|
||||
* Исключение, возникающее при попытке указать некорректный тип документа
|
||||
*/
|
||||
class InvalidDocumentTypeException extends AtolException
|
||||
{
|
||||
/**
|
||||
* Конструктор
|
||||
*
|
||||
* @param string $type
|
||||
* @param string $message
|
||||
* @param int $code
|
||||
* @param Throwable|null $previous
|
||||
*/
|
||||
public function __construct($type = '', $message = "", $code = 0, Throwable $previous = null)
|
||||
{
|
||||
parent::__construct(
|
||||
$message ?: "Wrong document type: '$type'. Valid ones: " . implode(', ', DocumentTypes::toArray()),
|
||||
$code,
|
||||
$previous
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -11,31 +11,21 @@ declare(strict_types = 1);
|
||||
|
||||
namespace AtolOnline\Exceptions;
|
||||
|
||||
use Throwable;
|
||||
|
||||
/**
|
||||
* Исключение, возникающее при ошибке валидации email
|
||||
* @see https://online.atol.ru/files/API_atol_online_v4.pdf Документация, стр 17
|
||||
*/
|
||||
class InvalidEmailException extends AtolException
|
||||
{
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
protected array $ffd_tags = [
|
||||
1008,
|
||||
1117,
|
||||
];
|
||||
protected array $ffd_tags = [1008, 1117];
|
||||
|
||||
/**
|
||||
* AtolEmailValidateException constructor.
|
||||
* Конструктор
|
||||
*
|
||||
* @param string $email
|
||||
* @param string $message
|
||||
* @param int $code
|
||||
* @param Throwable|null $previous
|
||||
*/
|
||||
public function __construct(string $email = '', $message = "", $code = 0, Throwable $previous = null)
|
||||
public function __construct(string $email = '')
|
||||
{
|
||||
parent::__construct($message ?: "Invalid email: '$email'", $code, $previous);
|
||||
parent::__construct("Невалидный email: '$email'");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
38
src/Exceptions/InvalidEnumValueException.php
Normal file
38
src/Exceptions/InvalidEnumValueException.php
Normal file
@@ -0,0 +1,38 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright (c) 2020-2021 Антон Аксенов (Anthony Axenov)
|
||||
*
|
||||
* This code is licensed under MIT.
|
||||
* Этот код распространяется по лицензии MIT.
|
||||
* https://github.com/anthonyaxenov/atol-online/blob/master/LICENSE
|
||||
*/
|
||||
|
||||
declare(strict_types = 1);
|
||||
|
||||
namespace AtolOnline\Exceptions;
|
||||
|
||||
use AtolOnline\Enum;
|
||||
|
||||
/**
|
||||
* Исключение, возникающее при ошибке валидации типа агента
|
||||
*/
|
||||
class InvalidEnumValueException extends AtolException
|
||||
{
|
||||
/**
|
||||
* Конструктор
|
||||
*
|
||||
* @param string $enum
|
||||
* @param mixed $value
|
||||
* @param string $message
|
||||
* @param array $ffd_tags
|
||||
*/
|
||||
public function __construct(string $enum, mixed $value, string $message = '', array $ffd_tags = [])
|
||||
{
|
||||
/** @var $enum Enum */
|
||||
parent::__construct(
|
||||
($message ?: "Некорректное значение $enum::$value.") .
|
||||
" Допустимые значения: " . implode(', ', $enum::toArray()),
|
||||
$ffd_tags ?: $enum::getFfdTags()
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -11,37 +11,23 @@ declare(strict_types = 1);
|
||||
|
||||
namespace AtolOnline\Exceptions;
|
||||
|
||||
use Throwable;
|
||||
|
||||
/**
|
||||
* Исключение, возникающее при попытке указать ИНН некорректной длины
|
||||
*/
|
||||
class InvalidInnLengthException extends AtolException
|
||||
{
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
protected array $ffd_tags = [
|
||||
1016,
|
||||
1018,
|
||||
1226,
|
||||
1228,
|
||||
];
|
||||
protected array $ffd_tags = [1016, 1018, 1226, 1228];
|
||||
|
||||
/**
|
||||
* AtolInnWrongLengthException constructor.
|
||||
* Конструктор
|
||||
*
|
||||
* @param string $inn
|
||||
* @param string $message
|
||||
* @param int $code
|
||||
* @param Throwable|null $previous
|
||||
*/
|
||||
public function __construct($inn = '', $message = "", $code = 0, Throwable $previous = null)
|
||||
public function __construct(string $inn = '', string $message = '')
|
||||
{
|
||||
parent::__construct(
|
||||
$message ?: 'INN length must be 10 or 12 digits only, actual is ' . strlen($inn),
|
||||
$code,
|
||||
$previous
|
||||
$message ?: 'Длина ИНН должна быть 10 или 12 цифр, фактически - ' . strlen($inn),
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,26 +11,16 @@ declare(strict_types = 1);
|
||||
|
||||
namespace AtolOnline\Exceptions;
|
||||
|
||||
use Throwable;
|
||||
|
||||
/**
|
||||
* Исключение, возникающее при работе с невалидным JSON
|
||||
*/
|
||||
class InvalidJsonException extends AtolException
|
||||
{
|
||||
/**
|
||||
* AtolInnWrongLengthException constructor.
|
||||
*
|
||||
* @param string $message
|
||||
* @param int $code
|
||||
* @param Throwable|null $previous
|
||||
* Конструктор
|
||||
*/
|
||||
public function __construct($message = "", $code = 0, Throwable $previous = null)
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct(
|
||||
$message ?: 'Invalid JSON: [' . json_last_error() . '] ' . json_last_error_msg(),
|
||||
$code,
|
||||
$previous
|
||||
);
|
||||
parent::__construct('[' . json_last_error() . '] ' . json_last_error_msg());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,34 +11,22 @@ declare(strict_types = 1);
|
||||
|
||||
namespace AtolOnline\Exceptions;
|
||||
|
||||
use Throwable;
|
||||
|
||||
/**
|
||||
* Исключение, возникающее при попытке указать некорректный платёжный адрес
|
||||
* Исключение, возникающее при попытке указать некорректный адрес места расчётов
|
||||
* @see https://online.atol.ru/files/API_atol_online_v4.pdf Документация, стр 35
|
||||
*/
|
||||
class InvalidPaymentAddressException extends AtolException
|
||||
{
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
protected array $ffd_tags = [
|
||||
1187,
|
||||
];
|
||||
protected array $ffd_tags = [1187];
|
||||
|
||||
/**
|
||||
* Конструктор
|
||||
*
|
||||
* @param string $address
|
||||
* @param string $message
|
||||
* @param int $code
|
||||
* @param Throwable|null $previous
|
||||
*/
|
||||
public function __construct($address = '', $message = "", $code = 0, Throwable $previous = null)
|
||||
public function __construct($address = '', $message = "")
|
||||
{
|
||||
parent::__construct(
|
||||
$message ?: "Wrong payment address: '$address'",
|
||||
$code,
|
||||
$previous
|
||||
);
|
||||
parent::__construct($message ?: "Некорректный адрес места расчётов: '$address'");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,45 +0,0 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright (c) 2020-2021 Антон Аксенов (Anthony Axenov)
|
||||
*
|
||||
* This code is licensed under MIT.
|
||||
* Этот код распространяется по лицензии MIT.
|
||||
* https://github.com/anthonyaxenov/atol-online/blob/master/LICENSE
|
||||
*/
|
||||
|
||||
declare(strict_types = 1);
|
||||
|
||||
namespace AtolOnline\Exceptions;
|
||||
|
||||
use AtolOnline\Enums\SnoTypes;
|
||||
use Throwable;
|
||||
|
||||
/**
|
||||
* Исключение, возникающее при попытке указать некорректную СНО
|
||||
*/
|
||||
class InvalidSnoException extends AtolException
|
||||
{
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
protected array $ffd_tags = [
|
||||
1055,
|
||||
];
|
||||
|
||||
/**
|
||||
* Конструктор
|
||||
*
|
||||
* @param string $sno
|
||||
* @param string $message
|
||||
* @param int $code
|
||||
* @param Throwable|null $previous
|
||||
*/
|
||||
public function __construct($sno = '', $message = "", $code = 0, Throwable $previous = null)
|
||||
{
|
||||
parent::__construct(
|
||||
$message ?: "Wrong SNO: '$sno'. Valid ones: " . implode(', ', SnoTypes::toArray()),
|
||||
$code,
|
||||
$previous
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -11,23 +11,21 @@ declare(strict_types = 1);
|
||||
|
||||
namespace AtolOnline\Exceptions;
|
||||
|
||||
use Throwable;
|
||||
|
||||
/**
|
||||
* Исключение, возникающее при ошибке валидации UUID
|
||||
*/
|
||||
class InvalidUuidException extends AtolException
|
||||
{
|
||||
/**
|
||||
* AtolInvalidUuidException constructor.
|
||||
* Конструктор
|
||||
*
|
||||
* @param $uuid
|
||||
* @param string $message
|
||||
* @param int $code
|
||||
* @param Throwable|null $previous
|
||||
*/
|
||||
public function __construct($uuid, $message = "", $code = 0, Throwable $previous = null)
|
||||
public function __construct(?string $uuid = null)
|
||||
{
|
||||
parent::__construct($message ?: 'Invalid UUID: '.$uuid, $code, $previous);
|
||||
parent::__construct('Невалидный UUID' . ($uuid ? ': ' . $uuid : ''));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,8 +11,6 @@ declare(strict_types = 1);
|
||||
|
||||
namespace AtolOnline\Exceptions;
|
||||
|
||||
use Throwable;
|
||||
|
||||
/**
|
||||
* Исключение, возникающее при попытке создать объект ККТ с неполными данными от монитора
|
||||
*/
|
||||
@@ -21,18 +19,16 @@ class NotEnoughMonitorDataException extends AtolException
|
||||
/**
|
||||
* @var string Сообщение об ошибке
|
||||
*/
|
||||
protected $message = 'Cannot create KKT entity without these properties: ';
|
||||
protected $message = 'Невозможно создать объект ККТ без следующих атрибутов: ';
|
||||
|
||||
/**
|
||||
* Конструктор
|
||||
*
|
||||
* @param array $props_diff
|
||||
* @param string $message
|
||||
* @param int $code
|
||||
* @param Throwable|null $previous
|
||||
*/
|
||||
public function __construct(array $props_diff, $message = "", int $code = 0, Throwable $previous = null)
|
||||
public function __construct(array $props_diff, string $message = '')
|
||||
{
|
||||
parent::__construct($message ?: $this->message . implode(', ', $props_diff), $code, $previous);
|
||||
parent::__construct($message ?: $this->message . implode(', ', $props_diff));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ namespace AtolOnline\Exceptions;
|
||||
/**
|
||||
* Исключение, возникающее при попытке указать слишком высокую цену (сумму)
|
||||
*/
|
||||
class TooHighPriceException extends BasicTooManyException
|
||||
class TooHighPriceException extends TooManyException
|
||||
{
|
||||
/**
|
||||
* @inheritDoc
|
||||
|
||||
@@ -11,13 +11,13 @@ declare(strict_types = 1);
|
||||
|
||||
namespace AtolOnline\Exceptions;
|
||||
|
||||
use AtolOnline\Constants\Constraints;
|
||||
|
||||
/**
|
||||
* Исключение, возникающее при попытке указать слишком длинный callback_url
|
||||
*/
|
||||
class TooLongCallbackUrlException extends BasicTooLongException
|
||||
class TooLongCallbackUrlException extends TooLongException
|
||||
{
|
||||
/**
|
||||
* @var string Сообщение об ошибке
|
||||
*/
|
||||
protected $message = 'Callback URL is too long';
|
||||
}
|
||||
protected $message = 'Слишком длинный адрес колбека';
|
||||
protected int $max = Constraints::MAX_LENGTH_CALLBACK_URL;
|
||||
}
|
||||
|
||||
@@ -11,20 +11,14 @@ declare(strict_types = 1);
|
||||
|
||||
namespace AtolOnline\Exceptions;
|
||||
|
||||
use AtolOnline\Constants\Constraints;
|
||||
|
||||
/**
|
||||
* Исключение, возникающее при попытке указать слишком длинное имя кассира
|
||||
*/
|
||||
class TooLongCashierException extends BasicTooLongException
|
||||
class TooLongCashierException extends TooLongException
|
||||
{
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
protected array $ffd_tags = [
|
||||
1021,
|
||||
];
|
||||
|
||||
/**
|
||||
* @var string Сообщение об ошибке
|
||||
*/
|
||||
protected $message = 'Cashier name is too long';
|
||||
}
|
||||
protected $message = 'Слишком длинное имя кассира';
|
||||
protected int $max = Constraints::MAX_LENGTH_CASHIER_NAME;
|
||||
protected array $ffd_tags = [1021];
|
||||
}
|
||||
|
||||
@@ -11,24 +11,14 @@ declare(strict_types = 1);
|
||||
|
||||
namespace AtolOnline\Exceptions;
|
||||
|
||||
use AtolOnline\Constants\Constraints;
|
||||
|
||||
/**
|
||||
* Исключение, возникающее при попытке указать слишком длинный телефон
|
||||
* Исключение, возникающее при попытке указать слишком длинный телефон или email покупателя
|
||||
*/
|
||||
class TooLongPhoneException extends BasicTooLongException
|
||||
class TooLongClientContactException extends TooLongException
|
||||
{
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
protected array $ffd_tags = [
|
||||
1008,
|
||||
1073,
|
||||
1074,
|
||||
1075,
|
||||
1171,
|
||||
];
|
||||
|
||||
/**
|
||||
* @var string Сообщение об ошибке
|
||||
*/
|
||||
protected $message = 'Phone is too long';
|
||||
}
|
||||
protected $message = 'Cлишком длинный телефон или email покупателя';
|
||||
protected int $max = Constraints::MAX_LENGTH_CLIENT_CONTACT;
|
||||
protected array $ffd_tags = [1008];
|
||||
}
|
||||
24
src/Exceptions/TooLongClientNameException.php
Normal file
24
src/Exceptions/TooLongClientNameException.php
Normal file
@@ -0,0 +1,24 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright (c) 2020-2021 Антон Аксенов (Anthony Axenov)
|
||||
*
|
||||
* This code is licensed under MIT.
|
||||
* Этот код распространяется по лицензии MIT.
|
||||
* https://github.com/anthonyaxenov/atol-online/blob/master/LICENSE
|
||||
*/
|
||||
|
||||
declare(strict_types = 1);
|
||||
|
||||
namespace AtolOnline\Exceptions;
|
||||
|
||||
use AtolOnline\Constants\Constraints;
|
||||
|
||||
/**
|
||||
* Исключение, возникающее при попытке указать слишком длинное наименование покупателя
|
||||
*/
|
||||
class TooLongClientNameException extends TooLongException
|
||||
{
|
||||
protected $message = 'Cлишком длинное наименование покупателя';
|
||||
protected int $max = Constraints::MAX_LENGTH_CLIENT_NAME;
|
||||
protected array $ffd_tags = [1227];
|
||||
}
|
||||
@@ -11,21 +11,14 @@ declare(strict_types = 1);
|
||||
|
||||
namespace AtolOnline\Exceptions;
|
||||
|
||||
use AtolOnline\Constants\Constraints;
|
||||
|
||||
/**
|
||||
* Исключение, возникающее при попытке указать слишком длинный email
|
||||
*/
|
||||
class TooLongEmailException extends BasicTooLongException
|
||||
class TooLongEmailException extends TooLongException
|
||||
{
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
protected array $ffd_tags = [
|
||||
1008,
|
||||
1117,
|
||||
];
|
||||
|
||||
/**
|
||||
* @var string Сообщение об ошибке
|
||||
*/
|
||||
protected $message = 'Email is too long';
|
||||
}
|
||||
protected $message = 'Слишком длинный email';
|
||||
protected int $max = Constraints::MAX_LENGTH_EMAIL;
|
||||
protected array $ffd_tags = [1008, 1117];
|
||||
}
|
||||
|
||||
44
src/Exceptions/TooLongException.php
Normal file
44
src/Exceptions/TooLongException.php
Normal file
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright (c) 2020-2021 Антон Аксенов (Anthony Axenov)
|
||||
*
|
||||
* This code is licensed under MIT.
|
||||
* Этот код распространяется по лицензии MIT.
|
||||
* https://github.com/anthonyaxenov/atol-online/blob/master/LICENSE
|
||||
*/
|
||||
|
||||
declare(strict_types = 1);
|
||||
|
||||
namespace AtolOnline\Exceptions;
|
||||
|
||||
/**
|
||||
* Исключение, возникающее при попытке указать слишком длинное что-либо
|
||||
*/
|
||||
class TooLongException extends AtolException
|
||||
{
|
||||
/**
|
||||
* @var string Сообщение об ошибке
|
||||
*/
|
||||
protected $message = 'Слишком длинное значение';
|
||||
|
||||
/**
|
||||
* @var int Максимальная длина строки
|
||||
*/
|
||||
protected int $max = 0;
|
||||
|
||||
/**
|
||||
* Конструктор
|
||||
*
|
||||
* @param string $value
|
||||
* @param string $message
|
||||
* @param int $max
|
||||
*/
|
||||
public function __construct(string $value, string $message = '', int $max = 0)
|
||||
{
|
||||
$message = ($message ?: $this->message) . ': '. $value;
|
||||
if ($max > 0 || $this->max > 0) {
|
||||
$message .= ' (макс. = ' . ($max ?? $this->max) . ', фактически = ' . mb_strlen($value) . ')';
|
||||
}
|
||||
parent::__construct($message);
|
||||
}
|
||||
}
|
||||
@@ -11,24 +11,14 @@ declare(strict_types = 1);
|
||||
|
||||
namespace AtolOnline\Exceptions;
|
||||
|
||||
use AtolOnline\Constants\Constraints;
|
||||
|
||||
/**
|
||||
* Исключение, возникающее при попытке указать слишком длинное имя
|
||||
*/
|
||||
class TooLongNameException extends BasicTooLongException
|
||||
class TooLongItemNameException extends TooLongException
|
||||
{
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
protected array $ffd_tags = [
|
||||
1026,
|
||||
1030,
|
||||
1085,
|
||||
1225,
|
||||
1227,
|
||||
];
|
||||
|
||||
/**
|
||||
* @var string Сообщение об ошибке
|
||||
*/
|
||||
protected $message = 'Name is too long';
|
||||
}
|
||||
protected $message = 'Слишком длинное наименование предмета расчёта';
|
||||
protected int $max = Constraints::MAX_LENGTH_ITEM_NAME;
|
||||
protected array $ffd_tags = [1030];
|
||||
}
|
||||
@@ -11,13 +11,13 @@ declare(strict_types = 1);
|
||||
|
||||
namespace AtolOnline\Exceptions;
|
||||
|
||||
use AtolOnline\Constants\Constraints;
|
||||
|
||||
/**
|
||||
* Исключение, возникающее при попытке указать слишком длинный логин ККТ
|
||||
*/
|
||||
class TooLongLoginException extends BasicTooLongException
|
||||
class TooLongLoginException extends TooLongException
|
||||
{
|
||||
/**
|
||||
* @var string Сообщение об ошибке
|
||||
*/
|
||||
protected $message = 'KKT login is too long';
|
||||
}
|
||||
protected $message = 'Слишком длинный логин';
|
||||
protected int $max = Constraints::MAX_LENGTH_LOGIN;
|
||||
}
|
||||
|
||||
@@ -11,13 +11,13 @@ declare(strict_types = 1);
|
||||
|
||||
namespace AtolOnline\Exceptions;
|
||||
|
||||
use AtolOnline\Constants\Constraints;
|
||||
|
||||
/**
|
||||
* Исключение, возникающее при попытке указать слишком длинный пароль ККТ
|
||||
*/
|
||||
class TooLongPasswordException extends BasicTooLongException
|
||||
class TooLongPasswordException extends TooLongException
|
||||
{
|
||||
/**
|
||||
* @var string Сообщение об ошибке
|
||||
*/
|
||||
protected $message = 'KKT password is too long';
|
||||
}
|
||||
protected $message = 'Слишком длинный пароль';
|
||||
protected int $max = Constraints::MAX_LENGTH_PASSWORD;
|
||||
}
|
||||
|
||||
24
src/Exceptions/TooLongPayingAgentOperationException.php
Normal file
24
src/Exceptions/TooLongPayingAgentOperationException.php
Normal file
@@ -0,0 +1,24 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright (c) 2020-2021 Антон Аксенов (Anthony Axenov)
|
||||
*
|
||||
* This code is licensed under MIT.
|
||||
* Этот код распространяется по лицензии MIT.
|
||||
* https://github.com/anthonyaxenov/atol-online/blob/master/LICENSE
|
||||
*/
|
||||
|
||||
declare(strict_types = 1);
|
||||
|
||||
namespace AtolOnline\Exceptions;
|
||||
|
||||
use AtolOnline\Constants\Constraints;
|
||||
|
||||
/**
|
||||
* Исключение, возникающее при попытке указать слишком длинную операцию для платёжного агента
|
||||
*/
|
||||
class TooLongPayingAgentOperationException extends TooLongException
|
||||
{
|
||||
protected $message = 'Слишком длинное yаименование операции платёжного агента';
|
||||
protected int $max = Constraints::MAX_LENGTH_PAYING_AGENT_OPERATION;
|
||||
protected array $ffd_tags = [1073];
|
||||
}
|
||||
@@ -11,20 +11,14 @@ declare(strict_types = 1);
|
||||
|
||||
namespace AtolOnline\Exceptions;
|
||||
|
||||
/**
|
||||
* Исключение, возникающее при попытке указать слишком длинный платёжный адрес
|
||||
*/
|
||||
class TooLongPaymentAddressException extends AtolException
|
||||
{
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
protected array $ffd_tags = [
|
||||
1187,
|
||||
];
|
||||
use AtolOnline\Constants\Constraints;
|
||||
|
||||
/**
|
||||
* @var string Сообщение об ошибке
|
||||
*/
|
||||
protected $message = 'Payment address is too long';
|
||||
}
|
||||
/**
|
||||
* Исключение, возникающее при попытке указать слишком длинный адрес места расчётов
|
||||
*/
|
||||
class TooLongPaymentAddressException extends TooLongException
|
||||
{
|
||||
protected $message = 'Слишком длинный адрес места расчётов';
|
||||
protected int $max = Constraints::MAX_LENGTH_PAYMENT_ADDRESS;
|
||||
protected array $ffd_tags = [1187];
|
||||
}
|
||||
|
||||
@@ -11,20 +11,14 @@ declare(strict_types = 1);
|
||||
|
||||
namespace AtolOnline\Exceptions;
|
||||
|
||||
/**
|
||||
* Исключение, возникающее при попытке указать слишком длинный телефон
|
||||
*/
|
||||
class TooLongUnitException extends BasicTooLongException
|
||||
{
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
protected array $ffd_tags = [
|
||||
1197,
|
||||
];
|
||||
use AtolOnline\Constants\Constraints;
|
||||
|
||||
/**
|
||||
* @var string Сообщение об ошибке
|
||||
*/
|
||||
protected $message = 'Measurement unit is too long';
|
||||
}
|
||||
/**
|
||||
* Исключение, возникающее при попытке указать слишком длинную единицу измерения предмета расчёта
|
||||
*/
|
||||
class TooLongUnitException extends TooLongException
|
||||
{
|
||||
protected $message = 'Слишком длинная единица измерения предмета расчёта';
|
||||
protected int $max = Constraints::MAX_LENGTH_MEASUREMENT_UNIT;
|
||||
protected array $ffd_tags = [1197];
|
||||
}
|
||||
|
||||
@@ -11,20 +11,14 @@ declare(strict_types = 1);
|
||||
|
||||
namespace AtolOnline\Exceptions;
|
||||
|
||||
use AtolOnline\Constants\Constraints;
|
||||
|
||||
/**
|
||||
* Исключение, возникающее при попытке указать слишком длинный дополнительный реквизит
|
||||
*/
|
||||
class TooLongUserdataException extends BasicTooLongException
|
||||
class TooLongUserdataException extends TooLongException
|
||||
{
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
protected array $ffd_tags = [
|
||||
1191,
|
||||
];
|
||||
|
||||
/**
|
||||
* @var string Сообщение об ошибке
|
||||
*/
|
||||
protected $message = 'User data is too long';
|
||||
}
|
||||
protected $message = 'Слишком длинный дополнительный реквизит предмета расчёта';
|
||||
protected int $max = Constraints::MAX_LENGTH_USER_DATA;
|
||||
protected array $ffd_tags = [1191];
|
||||
}
|
||||
|
||||
@@ -11,33 +11,34 @@ declare(strict_types = 1);
|
||||
|
||||
namespace AtolOnline\Exceptions;
|
||||
|
||||
use Throwable;
|
||||
|
||||
/**
|
||||
* Исключение, возникающее при попытке указать слишком большое количество чего-либо
|
||||
*/
|
||||
class BasicTooManyException extends AtolException
|
||||
class TooManyException extends AtolException
|
||||
{
|
||||
/**
|
||||
* @var string Сообщение об ошибке
|
||||
*/
|
||||
protected $message = 'Quantity is too high';
|
||||
protected $message = 'Слишком большое количество';
|
||||
|
||||
/**
|
||||
* AtolTooManyException constructor.
|
||||
*
|
||||
* @param float $quantity
|
||||
* @param float $max
|
||||
* @param string $message
|
||||
* @param int $code
|
||||
* @param Throwable|null $previous
|
||||
* @var int Максимальное количество
|
||||
*/
|
||||
public function __construct(float $quantity, float $max, $message = "", int $code = 0, Throwable $previous = null)
|
||||
protected int $max = 0;
|
||||
|
||||
/**
|
||||
* Конструктор
|
||||
*
|
||||
* @param float $value
|
||||
* @param string $message
|
||||
* @param float $max
|
||||
*/
|
||||
public function __construct(float $value, string $message = '', float $max = 0)
|
||||
{
|
||||
parent::__construct(
|
||||
$message ?: $this->message . ' (max - ' . $max . ', actual - ' . $quantity . ')',
|
||||
$code,
|
||||
$previous
|
||||
);
|
||||
$message = ($message ?: $this->message) . ': ' . $value;
|
||||
if ($max > 0 || $this->max > 0) {
|
||||
$message .= ' (макс. = ' . ($max ?? $this->max) . ', фактически = ' . $value . ')';
|
||||
}
|
||||
parent::__construct($message);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -11,13 +11,13 @@ declare(strict_types = 1);
|
||||
|
||||
namespace AtolOnline\Exceptions;
|
||||
|
||||
use AtolOnline\Constants\Constraints;
|
||||
|
||||
/**
|
||||
* Исключение, возникающее при попытке добавить слишком много предметов расчёта в массив
|
||||
*/
|
||||
class TooManyItemsException extends BasicTooManyException
|
||||
class TooManyItemsException extends TooManyException
|
||||
{
|
||||
/**
|
||||
* @var string Сообщение об ошибке
|
||||
*/
|
||||
protected $message = 'Too many items';
|
||||
}
|
||||
protected $message = 'Слишком много предметов расчёта в документе';
|
||||
protected int $max = Constraints::MAX_COUNT_DOC_ITEMS;
|
||||
}
|
||||
|
||||
@@ -11,23 +11,13 @@ declare(strict_types = 1);
|
||||
|
||||
namespace AtolOnline\Exceptions;
|
||||
|
||||
use AtolOnline\Constants\Constraints;
|
||||
|
||||
/**
|
||||
* Исключение, возникающее при попытке добавить слишком много платежей в массив
|
||||
*/
|
||||
class TooManyPaymentsException extends BasicTooManyException
|
||||
class TooManyPaymentsException extends TooManyException
|
||||
{
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
protected array $ffd_tags = [
|
||||
1031,
|
||||
1081,
|
||||
1215,
|
||||
1217,
|
||||
];
|
||||
|
||||
/**
|
||||
* @var string Сообщение об ошибке
|
||||
*/
|
||||
protected $message = 'Too many payments';
|
||||
}
|
||||
protected $message = 'Слишком много платежей в документе';
|
||||
protected int $max = Constraints::MAX_COUNT_DOC_PAYMENTS;
|
||||
}
|
||||
|
||||
@@ -11,25 +11,13 @@ declare(strict_types = 1);
|
||||
|
||||
namespace AtolOnline\Exceptions;
|
||||
|
||||
use AtolOnline\Constants\Constraints;
|
||||
|
||||
/**
|
||||
* Исключение, возникающее при попытке добавить слишком много ставок НДС в массив
|
||||
*/
|
||||
class TooManyVatsException extends BasicTooManyException
|
||||
class TooManyVatsException extends TooManyException
|
||||
{
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
protected array $ffd_tags = [
|
||||
1102,
|
||||
1103,
|
||||
1104,
|
||||
1105,
|
||||
1106,
|
||||
1107,
|
||||
];
|
||||
|
||||
/**
|
||||
* @var string Сообщение об ошибке
|
||||
*/
|
||||
protected $message = 'Too many vats';
|
||||
}
|
||||
protected $message = 'Слишком много ставок НДС в документе';
|
||||
protected int $max = Constraints::MAX_COUNT_DOC_VATS;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user