Compare commits

...

2 Commits

5 changed files with 27 additions and 17 deletions

View File

@ -7,6 +7,7 @@
[![Stable Version](https://img.shields.io/packagist/v/axenov/atol-online?label=stable)](https://packagist.org/packages/axenov/atol-online)
[![Packagist PHP Version Support](https://img.shields.io/packagist/php-v/axenov/atol-online?color=%23787cb4)](https://packagist.org/packages/axenov/atol-online)
[![License](https://img.shields.io/packagist/l/axenov/atol-online?color=%23369883)](LICENSE)
[![buymeacoffee](https://img.shields.io/badge/-buy_me_a%C2%A0coffee-gray?logo=buy-me-a-coffee)](https://www.buymeacoffee.com/axenov)
**[Документация](/docs/readme.md)**
@ -65,10 +66,20 @@
Для запуска тестов необходимо перейти в корень репозитория и выполнить одну из команд:
```bash
composer test # обычное тестирование
composer coverage # тестирование с покрытием
composer psalm # статический анализ
composer phpcs # синтаксический анализ
composer test # полное тестирование без покрытия
composer coverage # полное тестирование с покрытием
```
После тестирования с покрытием в корне репозитория создаётся отчёт, который сохраняется в директории `.coverage`.
Для тестирования с покрытием необходим `php-xdebug` с параметром `xdebug.mode = coverage,...`.
<a href="https://www.buymeacoffee.com/axenov" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/default-orange.png" alt="Buy Me A Coffee" height="41" width="174"></a>
# TODO
* [ ] Поддержка логирования через psr/log (psr-3)
* [ ] Поддержка кеширования через psr/cache (psr-6)
* [ ] Поддержка сторонних клиентов через psr/http-client (psr-18), отвязка от Guzzle
* [ ] События
* [ ] Поддержка ФФД 1.2 (разделение версий библиотеки по веткам?)
* [ ] ...

View File

@ -4,11 +4,11 @@
---
Коллекциями являются объекты, способные хранить в себе [сущности](entity.md). Они унаследованы
от `Illuminate/Support/Collection` и полностью поддерживают все
[стандартные методы коллекций Laravel](https://laravel.com/docs/master/collections).
Коллекциями являются объекты, способные хранить в себе [сущности](entity.md).
Они унаследованы от `Illuminate/Support/Collection` и полностью поддерживают все
[стандартные методы](https://laravel.com/docs/master/collections) коллекций Laravel.
Помимо этого, они валидируют количество и вид сущностей, которые могут хранить в себе, согласно схеме АТОЛ Онлайн API.
Помимо этого, они валидируют количество и вид сущностей, которые могут хранить в себе, согласно схеме API АТОЛ Онлайн.
Коллекции ведут себя аналогично самим сущностям в части приведения к массивам и json-ификации.

View File

@ -4,10 +4,10 @@
---
Сущностями являются все классы, которые необходимы для взаимодействия с API. Они находятся в директори `src/Entities` и
расширяют абстрактный класс `AtolOnline\Entities\Entity`.
Сущностями являются все классы, которые необходимы для взаимодействия с API.
Они находятся в директори `src/Entities` и расширяют абстрактный класс `AtolOnline\Entities\Entity`.
Каждая сущность содержит в себе только те данные, которые необходимы согласно схемы АТОЛ Онлайн API.
Каждая сущность содержит в себе только те данные, которые необходимы согласно схемы API АТОЛ Онлайн.
Ниже перечислены возможности сущностей.

View File

@ -48,7 +48,8 @@ $monitor->setTestMode(false);
$kkts = $monitor->getAll();
```
В ответе будет итерируемая коллекция объектов `AtolOnline\Entities\Kkt`. Каждый из этих объектов содержит атрибуты:
В ответе будет итерируемая коллекция объектов `AtolOnline\Entities\Kkt`.
Каждый из этих объектов содержит атрибуты:
```php
// для примера получим первую ККТ из всех

View File

@ -1,7 +1,6 @@
# Документация к библиотеке
<a id="toc"></a>
## Содержание
* [Общий алгоритм](#getstarted)
@ -14,11 +13,10 @@
Если вы нашли опечатку или какое-то несоответствие — делайте pull-request.
<a id="getstarted"></a>
## Общий алгоритм
1. Создать документ `AtolOnline\Entities\Receipt` или `AtolOnline\Entities\Correction`, добавив в него все необходимые
данные
1. Создать документ `AtolOnline\Entities\Receipt` или `AtolOnline\Entities\Correction`,
добавив в него все необходимые данные
2. Отправить документ на регистрацию:
2.1. *Необязательно:* при отправке задать `callback_url`, на который АТОЛ отправит HTTP POST о состоянии документа;
2.2. *Необязательно:* при отправке задать `external_id`, чтобы присвоить свой уникальный идентификатор документа;
@ -26,8 +24,8 @@
> Если с документом был передан `callback_url`, то ответ придёт на этот самый URL.
> Он должен быть обработан вашим сервисом в соответствии с бизнес-процессом.
> Если с документом **не был** передан `callback_url` **либо** callback от АТОЛа не пришёл в течение 300 секунд
> (5 минут), нужно запрашивать вручную по `uuid`, пришедшему от АТОЛа в ответ на регистрацию документа.
> Если с документом **не был** передан `callback_url` **либо** callback от АТОЛа не был получен/обработан в течение
> 300 секунд (5 минут), нужно запрашивать вручную по `uuid`, пришедшему от АТОЛа в ответ на регистрацию документа.
4. Проверить состояние документа:
4.1. взять `uuid` ответа, полученного на запрос фискализации;
4.2. отправить его в запросе состояния документа.