https://github.com/fey/vi-test-assignment
https://github.com/fey/vi-test-assignment
Last synced: over 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/fey/vi-test-assignment
- Owner: fey
- Created: 2021-02-18T20:12:55.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2021-02-18T20:22:31.000Z (over 5 years ago)
- Last Synced: 2025-02-01T01:52:16.220Z (over 1 year ago)
- Language: PHP
- Size: 11.7 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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 // количество
},
//...
]
},
// ...
]
```