docker-compose up
При запуске через миграции создаются три счёта (RUB, EUR, USD) с положительным балансом принадлежащих банку.
Далее пройти регистрацию по адресу: http://localhost/api/auth/registration Почта для отправки писем не настроена, поэтому регистрация упадет, но пользователь сразу будет доступен для входа. При регистрации пользователю создаются три счета (RUB, EUR, USD). И автоматически создается транзакция на сумму 100 USD счёта банка на счет нового пользователя.
Вход по адресу http://localhost/api/auth/login/
Список доступных счетов можно посмотреть по адресу http://localhost/api/api/accounts/. Обычные пользователи могут просмотривать информацию только о своих счетах, а также создавать новые счета в выбранной валюте с нулевым балансом. Пользователь is_staff имеет возможность просматривать все счета.
По адресу http://localhost/api/transactions/ можно посмотреть список своих транзакций. Доступна фильтрация и сортировка. Staff пользователь также имеет возможность просматривать все транзакции. Доступно создание новой транзакции, только между счетами одной валюты. Если указать один счёт отправитель и получатель в обоих полях, либо счета разных валют, появится сообщение с просьбой указать корректный счет.
Транзакция проводится не в реальном времени. При создании ей присваивается статус PENDING и отправляется на проведение в очередь. При проведении проверяется текущий баланс счёта отправителя, в случае если сумма перевода плюс комиссия превышает остаток на балансе, статус транзакции меняется на ERROR, записывается причина ошибки в поле error_msg. При успешном проведении списывается сумма перевода и комиссии со счета отправителя, сумма перевода добавляется на счет получателя, комиссия добавляется на счет банка, статус транзакции меняется на SUCCESS.
Login: superuser
Password: 123
Код покрыт тестами на имеющиеся права различными типами пользователей, сигналы, отложенные задания.