{"id":22382960,"url":"https://github.com/fey/vi-test-assignment","last_synced_at":"2025-03-26T19:44:27.544Z","repository":{"id":54223271,"uuid":"340166059","full_name":"fey/vi-test-assignment","owner":"fey","description":null,"archived":false,"fork":false,"pushed_at":"2021-02-18T20:22:31.000Z","size":12,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-01T01:52:16.220Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fey.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-02-18T20:12:55.000Z","updated_at":"2021-02-18T20:18:01.000Z","dependencies_parsed_at":"2022-08-13T09:31:07.892Z","dependency_job_id":null,"html_url":"https://github.com/fey/vi-test-assignment","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fey%2Fvi-test-assignment","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fey%2Fvi-test-assignment/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fey%2Fvi-test-assignment/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fey%2Fvi-test-assignment/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fey","download_url":"https://codeload.github.com/fey/vi-test-assignment/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245727640,"owners_count":20662553,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-05T00:42:29.768Z","updated_at":"2025-03-26T19:44:27.516Z","avatar_url":"https://github.com/fey.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"Задание\nПровести код-ревью разработанного микросервиса\nУсловие\nРазработчику была поставлена задача реализовать микросервис заказов для интернет-магазина в виде API. Микросервис должен содержать три API метода: для создания заказа, завершения заказа и получения информации и последних заказах.\nОписание методов:\nСоздание новых заказов Сигнатура:\n```json\n{\n  \"sum\": 1000, //общая сумма заказа\n  \"contractorType\": 1, // тип контрагента (юридическое/физическое лицо)\n  \"items\": [\n    {\n      \"productId\": 1, // ID товара\n      \"price\": 1000, // стоимость товара\n      \"quantity\": 1 // количество\n    },\n    //...\n  ]\n}\n```\n\nПри создании заказа генерируется уникальный номер в формате {год|2020}-{месяц|09}-{порядковый номер заказа}. Например 2020-09-12345\nПосле создания заказа физических лиц должно редиректить на страницу оплаты http://some-pay-agregator.com/pay/{номер заказа}\n\nЗавершение заказа с проверкой оплаты\nМетод осуществляет проверку факта оплаты для показа пользователю и по результату пользователь должен увидеть либо страницу благодарности, либо напоминание о необходимости оплаты.\nДля юридических лиц - проверка факта оплаты через отдельный микро-сервис (реализация обращения к микросервису на код ревью не представлена)\nДля физических - проверка через флаг оплаты, поле в БД (данные попадают в базу через внешний микросервис, реализация обмена данными на код ревью не представлена).\nПолучения информации о N последних заказах\nМетод должен возвращать информацию о заданном количестве заказов в формате:\n```json\n[\n    {\n      \"id\": \"2020-09-123456\", // номер заказа\n      \"sum\": 1000, //общая сумма заказа\n      \"contractorType\": 1, // тип контрагента (юридическое/физическое лицо)\n      \"items\": [\n        {\n          \"productId\": 1, // ID товара\n          \"price\": 1000, // стоимость товара\n          \"quantity\": 1 // количество\n        },\n        //...\n      ]\n    },\n    // ...\n]\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffey%2Fvi-test-assignment","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffey%2Fvi-test-assignment","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffey%2Fvi-test-assignment/lists"}