Coder Social home page Coder Social logo

atol-rb's People

Contributors

dependabot[bot] avatar eiririna avatar georgegorbanev avatar inner-whisper avatar manelyset avatar pserg avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

atol-rb's Issues

Обновить названия эксепшнов в соответствии с документацией API v4

При тестировании интеграции с АТОЛ с помощью данного gem-а заметил следующую особенность:

  • При попытке запросить документ с просроченным токеном мне возвращается эксепшн Atol::StateBadRequestError ({"error":{"code":11,"error_id":"adec8ba2-6ec3-4163-bf1f-f0a663a9da56","text":"Переданный токен не активен","type":"system"},"timestamp":"24.04.2020 13:23:55"})
  • При попытке запросить документ с неправильным токеном мне возвращается эксепшн Atol::IncomingExistExternalIdError ({"error":{"code":10,"error_id":"4bd55993-f094-4ea9-ae06-60dcf3bacfc7","text":"Не распознан токен запроса","type":"system"},"timestamp":"24.04.2020 13:24:48"})

Если посмотреть в документацию https://online.atol.ru/files/API_atol_online_v4.pdf в таблицу 6 на странице 60, то можно увидеть, что передаваемым кодам ошибок (поле code в json с ошибкой) есть соответствующие человекопонятные названия:

Ошибка Код ошибки
MissingToken 10
ExpiredToken 11

Мне данные названия кажутся более понятными и соответствующими сути происходящих ошибок.

Предлагаю названия всех эксепшнов в

ERRORS = Hash[
1 => BadJSONError,
2 => IncomingBadRequestError,
3 => IncomingOperationNotSupportError,
4 => IncomingMissingTokenError,
5 => IncomingNotExistTokenError,
6 => IncomingExpiredTokenError,
7 => IncomingQueueTimeoutError,
8 => IncomingValidationError,
9 => IncomingQueueError,
10 => IncomingExistExternalIdError,
11 => StateBadRequestError,
12 => StateMissingTokenError,
13 => StateNotExistTokenError,
14 => StateExpiredTokenError,
15 => StateMissingUuidError,
16 => StateNotFoundError,
22 => GroupCodeToTokenError,
23 => IsNullExternalIdError,
-3804 => ZeroItemQuantityError
].freeze
заменить на сформированные от названий в документации (название ошибки в документации + добавление Error в конце названия эксепшна).

Т.е. для моего примера это было бы в следующем виде:

  • При попытке запросить документ с просроченным токеном мне бы вернулся эксепшн Atol::ExpiredTokenError ({"error":{"code":11,"error_id":"adec8ba2-6ec3-4163-bf1f-f0a663a9da56","text":"Переданный токен не активен","type":"system"},"timestamp":"24.04.2020 13:23:55"})
  • При попытке запросить документ с неправильным токеном мне бы вернулся эксепшн Atol::MissingTokenError ({"error":{"code":10,"error_id":"4bd55993-f094-4ea9-ae06-60dcf3bacfc7","text":"Не распознан токен запроса","type":"system"},"timestamp":"24.04.2020 13:24:48"})

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.