PaymentController class

Введение

  1. Описание: Контроллер PaymentController используется для сверки платежей (payments) из банка и полученных средств (receipts).
  2. Маршруты: Обрабатываются POST-запрос по маршруту /payment/import.

Формат запроса

Необходимы 3 секрета, переданные в заголовке.

  1. Authorization: заголовок для передачи токена авторизации.
  2. X-Hasura-Admin-Secret: серкет-токен для Хасуры.
  3. secret: секрет API.
  4. x-hasura-role: роль пользователя в хасуре.

Валидация и преобразование данных

Валидируется наличие токенов из предыдущего формата.

Основная логика

  1. Проверка ключей.
  2. Создание репозитория: если действия производится от имени админа, используется репозиторий сервес-локатор. Иначе создаётся экземпляр репо с токенов GraphQLClient для выполнения запросов от имени юзера.
  3. Получение списка платежей из запроса.
  4. Сравнение платежей и полученных средств: для каждого полученного средства ищется соответствующий платеж. Если платёж найден, а сумма совпадает - обновляется статус на accepted. Иначе создаётся коммент и статус меняется на errorImport.
  5. Обновление статусов и данных в хасуре..

Взаимодействие с микросервисами

  1. Hasura: обновление данных, получение данных.

Ответы сервера

  1. Успешная операция сверки: Ожидаемый статус - 200 OK.
  2. Некорректные секрет-ключи: Ожидаемый статус - 400 badRequest.
  3. Ошибка сверки: Ожидаемый статус - 500 badRequest.
Inheritance

Constructors

PaymentController()

Properties

endpoint ↔ String
getter/setter pairinherited
hashCode → int
The hash code for this object.
no setterinherited
request ↔ Request
getter/setter pairinherited
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited

Methods

call(Request request) → FutureOr<Response>
inherited
handler() → FutureOr<Response>
Must be implemented
override
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
requestAsJson() → Future
Reads request value and parse as json
inherited
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited