Skip to content

bernmarx/avito-assignment

Repository files navigation

Микросервис для работы с балансом пользователей

Данный микросервис с HTTP API был разработан по условиям тестового задания в Авито

Используемые технологии:

  • Postgres
  • Docker

Эндпоинты и примеры их работы

HTTP API принимает запросы и возвращает ответы в формате JSON

/deposit

Метод: POST

Пополняет баланс пользователя, если account_id или balance_id отсутствует, создаёт новую строку в БД с этими id

Deposit

/withdraw

Метод: POST

Снимает деньги с баланса пользователя

Withdraw

/transfer

Метод: POST

Переводит деньги от одного пользователя другому

Transfer

/balance

Метод: GET

Возвращает баланс

Balance

Пример ответа:

BalanceResponse

Также можно перевести баланс в другую валюту, добавив в query параметр currency=код_валюты

Для конвертации валют используется ExchangeRate-API

Для использования своего API Key нужно поменять URL в .env в переменной EXCHANGE_RATE_API_URL

Пример:

BalanceCurr

BalanceCurrResponse

/history

Метод: GET

Возвращает всю историю транзакций balance_id (т.е. самого кошелька)

Поддерживает сортировку по возрастанию и убыванию по дате транзакции и её сумме (указывать её необязательно):

  • "date_asc", "date_desc" - сортировка транзакций по дате
  • "value_asc", "value_desc" - сортировка транзакций по сумме

History

Пример ответа:

HistoryResponse

/history/{page}

Метод: GET

Возвращает {page} страницу из истории транзакций balance_id (т.е. самого кошелька)

Сортировка работает аналогично /history

Количество записей на страницу можно поменять в .env перед деплоем, изменив MAX_HISTORY_PAGE_LEN

HistoryPage

Пример ответа:

HistoryResponse

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published