diff --git a/openapi.yaml b/openapi.yaml new file mode 100644 index 0000000..168079b --- /dev/null +++ b/openapi.yaml @@ -0,0 +1,141 @@ +openapi: 3.0.1 +info: + title: Сервис логики верификации аккаунта пользователя + description: |- + Область отвественности сервиса - получить на вход набор файлов необходимый для подтверждения статуса пользователя, оповещение менеджера для обработки поступившей заявки и оповещение польовательского сервиса о подтверждении статуса верификации пользователя + version: 1.0.0 +tags: + - name: verification +paths: + /verification/{userId}: + get: + description: метод для получения текущего статуса верификации текущего пользователя + parameters: + - name: userId + in: path + required: true + schema: + type: string + tags: + - verification + responses: + '200': + description: успешное получение данных + content: + application/json: + schema: + $ref: '#/components/schemas/Verification' + '401': + description: Неавторизован + /verification: + get: + description: метод для получения текущего статуса верификации текущего пользователя + tags: + - verification + responses: + '200': + description: успешное получение данных + content: + application/json: + schema: + $ref: '#/components/schemas/Verification' + '401': + description: Неавторизован + post: + description: метод подания запроса на верификацию. При получении запроса отправить сообщение в канал телеграмма. Айдишник канала и токен бота передавать через переменные окружения. Файл с шаблоном сообщения встраивать в приложение. В тексте сообщения должно быть место для вставки урла для получения страницы админки с этим запросом, вида https://admin.pena.digital/user/{Id}/verification + tags: + - verification + requestBody: + content: + multipart/form-data: + schema: + type: object + properties: + status: + $ref: '#/components/schemas/Status' + inn: + type: file + contentMediaType: application/pdf + contentEncoding: base64 + rule: + type: file + contentMediaType: application/pdf + contentEncoding: base64 + egrule: + type: file + contentMediaType: application/pdf + contentEncoding: base64 + certificate: + type: file + description: только для status == nko + contentMediaType: application/pdf + contentEncoding: base64 + responses: + '200': + description: успешный запрос на верификацию + content: + application/json: + schema: + $ref: '#/components/schemas/Verification' + '401': + description: Неавторизован + patch: + description: метод подтверждения или отклонения верификации. При подтверждении надо передать статус верификации в customer сервис. Эндпоинт для этого получить из переменных окружения. Документация для этого эндпоинта будет чуть позднее. Слать запрос туда лучше через воркер, сохраняя задачи на отправку запросов в базу, чтобы не потерялись при перезагрузке сервиса. + tags: + - verification + requestBody: + content: + application/json: + schema: + type: object + properties: + id: + type: string + description: айдишник юзера + status: + $ref: '#/components/schemas/Status' + comment: + type: string + accepted: + type: boolean + responses: + '200': + description: успешное подтверждение или отклонение верификации + '401': + description: Неавторизован +components: + schemas: + Verification: + type: object + properties: + _id: + type: string + description: айдишник юзера, который запросил верификацию + accepted: + type: boolean + status: + $ref: '#/components/schemas/Status' + updated_at: + type: string + format: "date-time" + comment: + type: string + files: + type: array + items: + $ref: '#/components/schemas/File' + File: + type: object + properties: + name: + type: string + url: + type: string + Status: + type: string + description: только no, nko или org + example: nko + enum: + - no + - nko + - org \ No newline at end of file