Skip to content

Тестовое задание для Elixir разработчиков, онлайн магазин

Notifications You must be signed in to change notification settings

LLCAEON/test_store

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 

Repository files navigation

Тестовое задание для Elixir разработчиков

Онлайн магазин

Необходимо создать API для онлайн магазина. Для покупки необходимо создать корзину, добавить туда товары и затем купить все товары из корзины. API подразумевает возможности просматривать список всех продуктов, список корзин.
Для написания должны использоваться Elixir, Phoenix, Ecto, PostgreSQL, GraphQL(Absinthe), ExUnit.
Ожидается использование GenServer для хранения данных корзин.

Методы API:

1. create_item

Параметры:
name - латиница и цифры
amount - количество

Ответ: созданный продукт

2. list_items

Параметры:
id - id корзины, опциональный, если не указан - показывать список всех продуктов

Ответ: список всех продуктов с актуальным для указанной корзины количеством (или общим количеством)

3. create_cart

Ответ: id корзины

4. add_to_cart

Параметры:
id - id корзины
name - название товара
amount - количество товара

Ответ: обновленная корзина

После этого запроса из общего числа товара в списке list_items с id корзины должны быть вычтены добавленные товары. Если товара не осталось - он не должен больше выводиться в списке list_items.

Например:

1. list_items {id: 1}
=> [{id: 1, name: "item1", amount: 3}]

2. add_to_cart {id: 1, name: "item1", amount: 2}
=> [{id: 1, name: "item1", amount: 2}]

3. list_items {id: 1}
=> [{id: 1, name: "item1", amount: 1}]

5. buy_cart

Параметры:
id - id корзины

После этого запроса из общего числа товара должны быть вычтены купленные товары. Если товара не осталось - он не должен больше выводиться в списке list_items. Корзина перестает отображаться в списке list_carts.

Ответ: список купленных товаров (из этой корзины)

6. delete_cart

Параметры:
id - id корзины

Ответ: id корзины

После этого запроса корзина удаляется и не отображается в списке list_carts.

7. list_carts

Ответ: список действующих корзин со списком товаров и количеством

Валидация, а также обработка граничных случаев приветствуется и будет плюсом при оценке.
Для упрощения задачи, купленные товары и корзины можно считать удаленными и не хранить.
Проект выкладывайте на github и присылайте ссылку на почту info@aeon.world

About

Тестовое задание для Elixir разработчиков, онлайн магазин

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published