An open API service indexing awesome lists of open source software.

https://github.com/fey/vi-test-assignment


https://github.com/fey/vi-test-assignment

Last synced: over 1 year ago
JSON representation

Awesome Lists containing this project

README

          

Задание
Провести код-ревью разработанного микросервиса
Условие
Разработчику была поставлена задача реализовать микросервис заказов для интернет-магазина в виде API. Микросервис должен содержать три API метода: для создания заказа, завершения заказа и получения информации и последних заказах.
Описание методов:
Создание новых заказов Сигнатура:
```json
{
"sum": 1000, //общая сумма заказа
"contractorType": 1, // тип контрагента (юридическое/физическое лицо)
"items": [
{
"productId": 1, // ID товара
"price": 1000, // стоимость товара
"quantity": 1 // количество
},
//...
]
}
```

При создании заказа генерируется уникальный номер в формате {год|2020}-{месяц|09}-{порядковый номер заказа}. Например 2020-09-12345
После создания заказа физических лиц должно редиректить на страницу оплаты http://some-pay-agregator.com/pay/{номер заказа}

Завершение заказа с проверкой оплаты
Метод осуществляет проверку факта оплаты для показа пользователю и по результату пользователь должен увидеть либо страницу благодарности, либо напоминание о необходимости оплаты.
Для юридических лиц - проверка факта оплаты через отдельный микро-сервис (реализация обращения к микросервису на код ревью не представлена)
Для физических - проверка через флаг оплаты, поле в БД (данные попадают в базу через внешний микросервис, реализация обмена данными на код ревью не представлена).
Получения информации о N последних заказах
Метод должен возвращать информацию о заданном количестве заказов в формате:
```json
[
{
"id": "2020-09-123456", // номер заказа
"sum": 1000, //общая сумма заказа
"contractorType": 1, // тип контрагента (юридическое/физическое лицо)
"items": [
{
"productId": 1, // ID товара
"price": 1000, // стоимость товара
"quantity": 1 // количество
},
//...
]
},
// ...
]
```