Необходимо создать API для онлайн магазина. Для покупки необходимо создать корзину, добавить туда товары и затем купить все товары из корзины. API подразумевает возможности просматривать список всех продуктов, список корзин.
Ожидается использование GenServer для хранения данных корзин.
Параметры:
name - латиница и цифры
amount - количество
Ответ: созданный продукт
Параметры:
id - id корзины, опциональный, если не указан - показывать список всех продуктов
Ответ: список всех продуктов с актуальным для указанной корзины количеством (или общим количеством)
Ответ: id корзины
Параметры:
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}]
Параметры:
id - id корзины
После этого запроса из общего числа товара должны быть вычтены купленные товары. Корзина перестает отображаться в списке list_carts.
Ответ: список купленных товаров (из этой корзины)
Параметры:
id - id корзины
Ответ: id корзины
После этого запроса корзина удаляется и не отображается в списке list_carts. Все товары из корзины снова должны учитываться в списке list_items.
Ответ: список действующих корзин со списком товаров и количеством