Веб-сервис на базе django, предоставляющий REST-api и способный:
-
принимать из POST-запроса .csv файлы для дальнейшей обработки
-
обрабатывать типовые deals.csv файлы, содержащие истории сделок
-
сохранять извлеченные из файла данные в БД проекта
-
возвращать обработанные данные в ответе на GET-запрос
- клонировать репозиторий
git@github.com:ApriCotBrain/deal-histories.git
-
в домашней директории проекта создать файл .env по примеру .env_sample
-
перейти в директорию infra
cd infra
- запустить сборку контейнеров:
docker-compose up -d --build
- выполнить команды:
docker-compose exec backend python manage.py migrate
docker-compose exec backend python manage.py collectstatic --no-input
В проекте доступны следующие эндпоинты:
- загрузка файла для обработки
Метод: POST
Типовой файл для загрузки лежит в папке data
Аргументы:
deals: файл, содержащий историю сделок.
Ответ:
Status: OK - файл был обработан без ошибок
Status: Error - в процессе обработки файла произошла ошибка
http://localhost/api/v1/upload-csv-file/
- Выдача обработанных данных
Метод: GET
В ответе содержится поле “response” со списком из 5 клиентов, потративших наибольшую сумму за весь период.
Каждый клиент описывается следующими полями:
username - логин клиента
spent_money - сумма потраченных средств за весь период
gems - список из названий камней, которые купили как минимум двое из списка "5 клиентов, потративших наибольшую сумму за весь период", и данный клиент является одним из этих покупателей
http://localhost/api/v1/top-customers/<int:id>/