/deal-histories

Веб-сервис на базе django, предоставляющий REST-api и способный: принимать из POST-запроса .csv файлы для дальнейшей обработки, обрабатывать типовые deals.csv файлы, содержащие истории сделок, сохранять извлеченные из файла данные в БД проекта, возвращать обработанные данные в ответе на GET-запрос

Primary LanguagePython

DEAL-HISTORIES

Описание проекта:

Веб-сервис на базе 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>/