- регистрация, аутентификация и авторизация пользователей;
- приём номеров заказов от зарегистрированных пользователей;
- учёт и ведение списка переданных номеров заказов зарегистрированного пользователя;
- учёт и ведение накопительного счёта зарегистрированного пользователя;
- проверка принятых номеров заказов через систему расчёта баллов лояльности;
- начисление за каждый подходящий номер заказа положенного вознаграждения на счёт лояльности пользователя.
POST /api/user/register
— регистрация пользователя;
POST /api/user/login
— аутентификация пользователя;
POST /api/user/orders
— загрузка пользователем номера заказа для расчёта;
GET /api/user/orders
— получение списка загруженных пользователем номеров заказов, статусов их обработки и информации о начислениях;
GET /api/user/balance
— получение текущего баланса счёта баллов лояльности пользователя;
POST /api/user/balance/withdraw
— запрос на списание баллов с накопительного счёта в счёт оплаты нового заказа;
GET /api/user/withdrawals
— получение информации о выводе средств с накопительного счёта пользователем.
Сервис должен поддерживать конфигурирование следующими методами:
- адрес и порт запуска сервиса: переменная окружения ОС RUN_ADDRESS или флаг -a;
- адрес подключения к базе данных: переменная окружения ОС DATABASE_URI или флаг -d;
- адрес системы расчёта начислений: переменная окружения ОС ACCRUAL_SYSTEM_ADDRESS или флаг -r.