Skip to content

LHLHLHE/test_task_rishat_stripe

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Задание

Реализовать Django + Stripe API бэкенд со следующим функционалом и условиями:

  • Django Модель Item с полями (name, description, price)
  • API с двумя методами:
    • GET /buy/{id}, c помощью которого можно получить Stripe Session Id для оплаты выбранного Item. При выполнении этого метода c бэкенда с помощью python библиотеки stripe должен выполняться запрос stripe.checkout.Session.create(...) и полученный session.id выдаваться в результате запроса
    • GET /item/{id}, c помощью которого можно получить простейшую HTML страницу, на которой будет информация о выбранном Item и кнопка Buy. По нажатию на кнопку Buy должен происходить запрос на /buy/{id}, получение session_id и далее с помощью JS библиотеки Stripe происходить редирект на Checkout форму stripe.redirectToCheckout(sessionId=session_id)

Также реализованы бонусные задачи:

  • Запуск используя Docker
  • Использование environment variables
  • Просмотр Django Моделей в Django Admin панели
  • Модель Order, в которой можно объединить несколько Item и сделать платёж в Stripe на содержимое Order c общей стоимостью всех Items

Запуск в Docker

  • Создайте файл .env в корнейвой директории проекта и задайте в нем имя, почту, пароль для супер-пользователя и свой stripe api key в следующем формате:
    STRIPE_API_KEY=key
    DJANGO_SUPERUSER_USERNAME=admin
    [email protected]
    DJANGO_SUPERUSER_PASSWORD=admin
    
  • В корневой директории выполните команду:
    docker-compose up
    

Проект будет размещаться на http://127.0.0.1:8000

Документация

  • Объекты модели Item создаются через админ-панель(http://127.0.0.1:8000/admin)
  • Заказ создается автоматически после первого добавления в него товара

Эндпоинты

  • / - главная страница со всеми товарами
  • /item/{id} - страница товара
  • /item/{id}/buy/ - оплата товара
  • /item/{id}/add-to-order/ - добавление товара в заказ
  • /orders/ - страница с заказами
  • /orders/{id}/ - страница заказа
  • /orders/{id}/buy/ - оплата заказа

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors