Сервис для управления балансом и счетами пользователей, который позволяет осуществлять основные денежные операции
- Сервис предоставляет HTTP API в формате JSON
- Зачисление средств на баланс
- Резервирование средств с основного баланса на отдельном счете
- Cписание денег из резерва
- Получение баланса пользователя
- Перевод средств от пользователя к пользователю
- Получение отчёта по выручке среди всех пользователей для каждой операции за заданный месяц
- Установите Docker и docker-compose для своей ОС https://docs.docker.com/compose/install/
- Склонируйте репозиторий и перейдите в корень проекта
git clone https://github.com/ssergomol/Balance-Manager.git && cd ./Balance-Manager
- Выполните
docker-compose up
- Метод зачисление средств на баланс Принимает ID пользователя и сумму зачисления
Запрос:
curl --header "Content-Type: application/json" \
--request POST \
--data \
'{ "id": 0, "sum":"1000.00" }' \
http://localhost:8080/balance
Тело ответа (совпадает с телом ответа в случае успеха):
{
"id": 0,
"sum": 1000.00
}
- Метод резервирования средств с основного баланса на отдельном счете Принимает ID пользователя, ID услуги, ID счёта и сумму резервирования, причём ID услуги равен 1
Запрос:
curl --header "Content-Type: application/json" \
--request POST \
--data \
'{ "id": 0, "user_id": 0, "service_id": 1, "sum":"1000.00"}' \
http://localhost:8080/accounts
Тело ответа (совпадает с телом ответа в случае успеха):
{
"id": 0,
"user_id": 0,
"service_id": 1,
"sum":"1000.00"
}
- Метод списания денег из резерва Принимает ID пользователя, ID услуги, ID счёта и сумму резервирования, причём ID услуги равен 2
Запрос:
curl --header "Content-Type: application/json" \
--request POST \
--data \
'{ "id": 0, "user_id": 0, "service_id": 2, "sum":"100.00"}' \
http://localhost:8080/accounts
Тело ответа (совпадает с телом ответа в случае успеха):
{
"id": 0,
"user_id": 0,
"service_id": 2,
"sum":"100.00"
}
- Метод получения баланса пользователя Принимает id пользователя Запрос:
curl --header "Content-Type: application/json" \
--request GET \
--data \
'{ "id": 0 }' \
http://localhost:8080/balance
Тело ответа (в случае успеха возвращает id пользователя и его баланс):
{
"id": 0,
"sum": "1000.00"
}
- Метод перевода средств от одного пользователя к другому Принимает ID каждого из пользовтелей, ID счетов каждого из пользователей и сумму перевода
curl --header "Content-Type: application/json" \
--request POST \
--data \
'{ "from_id": 0, "from_user_id": 0, "to_id": 1, "to_user_id": 1, "sum": "50.00" }' \
http://localhost:8080/accounts/transfer
Тело ответа (в случае успеха возвращает ID счетов, ID пользовтелей и их остатки на счетах после перевода)
{
"id": 0,
"user_id": 0,
"service_id": 0,
"sum":"850.00"
}
{
"id": 1,
"user_id": 1,
"service_id": 0,
"sum":"50.00"
}
- Метод получения отчёта по выручке среди всех пользователей для каждой операции за заданный месяц Принимает период в формате "год-месяц", за который необходимо получить отчёт
curl --header "Content-Type: application/json" \
--request GET \
--data \
'{ "date": "2022-11" }' \
http://localhost:8080/report
Тело ответа (в случае успеха возвращает путь, где был создан отчёт в формате csv файла)
Все отчёты сохраняются в папке reports/
"report reports/report_2022_11 created"
Сергей Молчанов - @ssergomol - ssergomoll@gmail.com
Ссылка на проект: https://github.com/ssergomol/Balance-Manager