heruvym/openapi.yaml

1957 lines
60 KiB
YAML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

openapi: 3.0.0
servers:
- url: http://localhost:8000/support
info:
description: ''
version: 1.0.0
title: Heruvym
paths:
/create:
post:
summary: Метод для создания тикета
security:
- bearer_in_cookie: []
responses:
'200':
description: Default response
content:
application/json:
schema:
type: object
properties:
Ticket:
type: string
example: c2fekjcobibtq7akknog
Sess:
type: string
example: fasdjklj2lz
'400':
$ref: "#/components/responses/BadRequest"
'401':
$ref: "#/components/responses/Unauthorized"
'500':
$ref: "#/components/responses/ErrorOccurred"
requestBody:
content:
application/json:
schema:
type: object
required:
- Title
- Message
properties:
Title:
type: string
example: test ticket title
Message:
type: string
example: test ticket message
System:
type: boolean
/subscribe:
get:
summary: SSE метод для подписывания на изменения по всем тикетам доступным пользователю
security:
- bearer_in_query: []
responses:
'200':
description: Default response
headers:
Content-Type:
schema:
type: string
example: "text/event-stream"
enum:
- "text/event-stream"
Cache-Control:
schema:
type: string
example: "no-cache"
enum:
- "no-cache"
Connection:
schema:
type: string
example: "keep-alive"
enum:
- "keep-alive"
content:
application/json:
schema:
$ref: "#/components/schemas/Ticket"
'400':
$ref: "#/components/responses/BadRequest"
'401':
$ref: "#/components/responses/Unauthorized"
'424':
$ref: "#/components/responses/FailedDependency"
/ticket:
get:
summary: SSE метод для подписки на сообщения из одного тикета
security:
- bearer_in_query: []
parameters:
- in: query
name: "ticket"
example: "dfajrkletj234poijnmflzxcwerasdkjcmpl"
responses:
'200':
description: Default response
headers:
Content-Type:
schema:
type: string
example: "text/event-stream"
enum:
- "text/event-stream"
Cache-Control:
schema:
type: string
example: "no-cache"
enum:
- "no-cache"
Connection:
schema:
type: string
example: "keep-alive"
enum:
- "keep-alive"
content:
application/json:
schema:
$ref: '#/components/schemas/Message'
'400':
$ref: "#/components/responses/BadRequest"
'401':
$ref: "#/components/responses/Unauthorized"
'424':
$ref: "#/components/responses/FailedDependency"
/send:
post:
summary: Метод для отправки сообщения в тикет
security:
- bearer_in_cookie: []
requestBody:
content:
application/json:
schema:
type: object
required:
- message
- TicketID
- lang
properties:
message:
type: string
example: "test ticket message"
TicketID:
type: string
example: "c2fekjcobibtq7akknog"
lang:
type: string
example: "ru"
files:
type: array
items:
type: string
example: "idoffile"
responses:
'200':
description: Default response
'400':
$ref: "#/components/responses/BadRequest"
'401':
$ref: "#/components/responses/Unauthorized"
'500':
$ref: "#/components/responses/ErrorOccurred"
/requestScreensot:
post:
summary: Метод для реквеста скриншота
security:
- bearer_in_cookie: []
requestBody:
content:
application/json:
schema:
type: object
required:
- TicketID
- Lang
properties:
ticket:
type: string
example: "c2fekjcobibtq7akknog"
lang:
type: string
example: "ru"
responses:
'200':
description: Default response
'400':
$ref: "#/components/responses/BadRequest"
'401':
$ref: "#/components/responses/Unauthorized"
'500':
$ref: "#/components/responses/ErrorOccurred"
/sendFiles:
post:
summary: Метод для отправки файлов
security:
- bearer_in_cookie: [ ]
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
fileName:
type: string
format: binary
ticket:
type: string
example: "4145mgfioasdfgt9845"
responses:
'200':
description: Default response
content:
application/json:
schema:
type: object
properties:
message:
type: string
example: "4518u035u13fjopq0"
'208':
$ref: "#/components/responses/AlreadyReported"
'400':
$ref: "#/components/responses/BadRequest"
'401':
$ref: "#/components/responses/Unauthorized"
'413':
$ref: "#/components/responses/RequestEntityTooLarge"
'406':
$ref: '#/components/responses/NotAcceptable'
'429':
$ref: '#/components/responses/TooManyRequests'
'500':
$ref: "#/components/responses/ErrorOccurred"
/sendSC:
post:
summary: Метод для отправки файлов SC
security:
- bearer_in_cookie: [ ]
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
fileName:
type: string
format: binary
ticket:
type: string
example: "4145mgfioasdfgt9845"
responses:
'200':
description: Default response
content:
application/json:
schema:
type: object
properties:
message:
type: string
example: "4518u035u13fjopq0"
'400':
$ref: "#/components/responses/BadRequest"
'401':
$ref: "#/components/responses/Unauthorized"
'500':
$ref: "#/components/responses/ErrorOccurred"
/getTickets:
post:
summary: Метод для получения тикетов с пагинацией
security:
- bearer_in_cookie: []
requestBody:
content:
application/json:
schema:
type: object
properties:
amt:
type: integer
example: 10
description: Количество тикетов на странице
page:
type: integer
example: 1
description: Страница
srch:
type: string
example: "test"
description: Поисковый запрос
status:
type: string
example: "open"
description: Статус тикета
responses:
'200':
description: Default response
content:
application/json:
schema:
type: object
properties:
Data:
type: array
items:
$ref: "#/components/schemas/Ticket"
Count:
type: integer
example: 10
description: Количество найденных тикетов по поисковому запросу
'204':
description: No content
'400':
$ref: "#/components/responses/BadRequest"
'401':
$ref: "#/components/responses/Unauthorized"
'500':
$ref: "#/components/responses/ErrorOccurred"
/getMessages:
post:
summary: Метод для получения сообщений тикета с пагинацией
security:
- bearer_in_cookie: [ ]
requestBody:
content:
application/json:
schema:
type: object
properties:
amt:
type: integer
example: 10
page:
type: integer
example: 1
srch:
type: string
example: "test"
ticket:
type: string
example: "c2fekjcobibtq7akknog"
responses:
'200':
description: Default response
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/Message"
'204':
description: No content
'400':
$ref: "#/components/responses/BadRequest"
'401':
$ref: "#/components/responses/Unauthorized"
/pick:
post:
summary: Подхватывание сотрудником диалога
security:
- bearer_in_cookie: []
requestBody:
content:
application/json:
schema:
type: object
properties:
ticket:
type: string
example: "c2fekjcobibtq7akknog"
responses:
'200':
description: Default response
'400':
$ref: "#/components/responses/BadRequest"
'401':
$ref: "#/components/responses/Unauthorized"
/delegate:
post:
summary: Передача тикета другому сотруднику
security:
- bearer_in_cookie: []
requestBody:
content:
application/json:
schema:
type: object
properties:
ticket:
type: string
example: "c2fekjcobibtq7akknog"
answerer:
type: string
example: "c2fekjcobibtq7akknog"
responses:
'200':
description: Default response
'400':
$ref: "#/components/responses/BadRequest"
'401':
$ref: "#/components/responses/Unauthorized"
/vote:
post:
summary: Метод для оценки полезности ответа
security:
- bearer_in_cookie: []
requestBody:
content:
application/json:
schema:
type: object
properties:
ticket:
type: string
example: "c2fekjcobibtq7akknog"
rate:
type: string
example: "5"
responses:
'200':
description: Default response
'400':
$ref: "#/components/responses/BadRequest"
'401':
$ref: "#/components/responses/Unauthorized"
/close:
post:
summary: Метод для закрытия тикета
security:
- bearer_in_cookie: [ ]
requestBody:
content:
application/json:
schema:
type: object
properties:
ticket:
type: string
example: "c2fekjcobibtq7akknog"
responses:
'200':
description: Default response
content:
application/json:
schema:
type: object
properties:
Ticket:
type: string
example: c2fekjcobibtq7akknog
'400':
$ref: "#/components/responses/BadRequest"
'401':
$ref: "#/components/responses/Unauthorized"
/account/pagination:
get:
summary: Получение информации об аккаунтах
tags:
- account
description: Получение список аккаунтов с пагинацией из БД
parameters:
- schema:
type: number
in: query
name: page
required: false
description: номер страницы
- schema:
type: number
in: query
name: limit
required: false
description: Лимит количества аккаунтов (больше 100 не обрабатывается)
responses:
'200':
description: Список аккаунтов
content:
application/json:
schema:
description: Список аккаунтов
type: object
properties:
accounts:
type: array
description: Массив аккаунтов
items:
description: Аккаунт
type: object
properties:
_id:
type: string
userId:
type: string
nickname:
type: string
avatar:
type: string
role:
type: string
isDeleted:
type: boolean
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
deletedAt:
type: string
format: date-time
examples:
- _id: 807f1f77bcf81cd799439011
userId: 507f1f77bcf86cd799439011
nickname: Ivanov Ivan Ivanovich
avatar: /media/avatar/default-avatar.jpg
role: user
isDeleted: false
createdAt: '2017-07-21T17:32:28Z'
updatedAt: '2017-07-21T17:32:28Z'
- _id: 807f1f77bcf81cd799439011
userId: 507f1f77bcf86cd799439011
nickname: Ivanov Ivan Ivanovich
avatar: /media/avatar/default-avatar.jpg
role: user
isDeleted: true
createdAt: '2017-07-21T17:32:28Z'
updatedAt: '2019-04-14T15:32:15Z'
deletedAt: '2021-08-17T13:23:44Z'
totalPages:
type: number
example:
totalPages: 10
accounts:
- _id: 807f1f77bcf81cd799439011
userId: 507f1f77bcf86cd799439011
nickname: Ivanov Ivan Ivanovich
avatar: /media/avatar/default-avatar.jpg
role: user
isDeleted: false
createdAt: '2017-07-21T17:32:28Z'
updatedAt: '2017-07-21T17:32:28Z'
- _id: 807f1f77bcf81cd799439011
userId: 507f1f77bcf86cd799439011
nickname: Ivanov Ivan Ivanovich
avatar: /media/avatar/default-avatar.jpg
role: user
isDeleted: true
createdAt: '2017-07-21T17:32:28Z'
updatedAt: '2019-04-14T15:32:15Z'
deletedAt: '2021-08-17T13:23:44Z'
/account/{userId}:
get:
summary: Получение информации об аккаунте
tags:
- account
description: Получение аккаунта по ID
parameters:
- schema:
type: string
in: path
name: userId
required: true
description: ID пользователя
responses:
'200':
description: Аккаунт
content:
application/json:
schema:
description: Аккаунт
type: object
properties:
_id:
type: string
userId:
type: string
nickname:
type: string
avatar:
type: string
role:
type: string
isDeleted:
type: boolean
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
deletedAt:
type: string
format: date-time
examples:
example1:
value:
_id: 807f1f77bcf81cd799439011
userId: 507f1f77bcf86cd799439011
nickname: Ivanov Ivan Ivanovich
avatar: /media/avatar/default-avatar.jpg
role: user
isDeleted: false
createdAt: '2017-07-21T17:32:28Z'
updatedAt: '2017-07-21T17:32:28Z'
example2:
value:
_id: 807f1f77bcf81cd799439011
userId: 507f1f77bcf86cd799439011
nickname: Ivanov Ivan Ivanovich
avatar: /media/avatar/default-avatar.jpg
role: user
isDeleted: true
createdAt: '2017-07-21T17:32:28Z'
updatedAt: '2019-04-14T15:32:15Z'
deletedAt: '2021-08-17T13:23:44Z'
'400':
description: Bad Request
content:
application/json:
schema:
type: object
description: Bad Request
properties:
statusCode:
type: integer
error:
type: string
message:
type: string
example:
statusCode: 400
error: Bad Request
message: invalid user id
delete:
summary: Удаление аккаунта по ID
tags:
- account
description: Помечает аккаунт удалённым, но не удаляет его из БД
parameters:
- schema:
type: string
in: path
name: userId
required: true
description: ID пользователя
security:
- bearer: [ ]
responses:
'200':
description: Аккаунт
content:
application/json:
schema:
description: Аккаунт
type: object
properties:
_id:
type: string
userId:
type: string
nickname:
type: string
avatar:
type: string
role:
type: string
isDeleted:
type: boolean
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
deletedAt:
type: string
format: date-time
examples:
example1:
value:
_id: 807f1f77bcf81cd799439011
userId: 507f1f77bcf86cd799439011
nickname: Ivanov Ivan Ivanovich
avatar: /media/avatar/default-avatar.jpg
role: user
isDeleted: false
createdAt: '2017-07-21T17:32:28Z'
updatedAt: '2017-07-21T17:32:28Z'
example2:
value:
_id: 807f1f77bcf81cd799439011
userId: 507f1f77bcf86cd799439011
nickname: Ivanov Ivan Ivanovich
avatar: /media/avatar/default-avatar.jpg
role: user
isDeleted: true
createdAt: '2017-07-21T17:32:28Z'
updatedAt: '2019-04-14T15:32:15Z'
deletedAt: '2021-08-17T13:23:44Z'
'400':
description: Bad Request
content:
application/json:
schema:
type: object
description: Bad Request
properties:
statusCode:
type: integer
error:
type: string
message:
type: string
example:
statusCode: 400
error: Bad Request
message: invalid user id
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
description: Unauthorized
properties:
statusCode:
type: integer
error:
type: string
message:
type: string
example:
statusCode: 401
error: Unauthorized
message: invalid token
'404':
description: Not Found
content:
application/json:
schema:
type: object
description: Not Found
properties:
statusCode:
type: integer
error:
type: string
message:
type: string
example:
statusCode: 404
error: Not Found
message: user not found
/account/:
get:
summary: Получение информации об аккаунте
tags:
- account
description: Получение информации об аккаунте через токен доступа
security:
- bearer: [ ]
responses:
'200':
description: Аккаунт
content:
application/json:
schema:
description: Аккаунт
type: object
properties:
_id:
type: string
userId:
type: string
nickname:
type: string
avatar:
type: string
role:
type: string
isDeleted:
type: boolean
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
deletedAt:
type: string
format: date-time
examples:
example1:
value:
_id: 807f1f77bcf81cd799439011
userId: 507f1f77bcf86cd799439011
nickname: Ivanov Ivan Ivanovich
avatar: /media/avatar/default-avatar.jpg
role: user
isDeleted: false
createdAt: '2017-07-21T17:32:28Z'
updatedAt: '2017-07-21T17:32:28Z'
example2:
value:
_id: 807f1f77bcf81cd799439011
userId: 507f1f77bcf86cd799439011
nickname: Ivanov Ivan Ivanovich
avatar: /media/avatar/default-avatar.jpg
role: user
isDeleted: true
createdAt: '2017-07-21T17:32:28Z'
updatedAt: '2019-04-14T15:32:15Z'
deletedAt: '2021-08-17T13:23:44Z'
'400':
description: Bad Request
content:
application/json:
schema:
type: object
description: Bad Request
properties:
statusCode:
type: integer
error:
type: string
message:
type: string
example:
statusCode: 400
error: Bad Request
message: invalid user id
post:
summary: Создание аккаунта
tags:
- account
security:
- bearer: [ ]
responses:
'200':
description: Аккаунт
content:
application/json:
schema:
description: Аккаунт
type: object
properties:
_id:
type: string
userId:
type: string
nickname:
type: string
avatar:
type: string
role:
type: string
isDeleted:
type: boolean
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
deletedAt:
type: string
format: date-time
examples:
example1:
value:
_id: 807f1f77bcf81cd799439011
userId: 507f1f77bcf86cd799439011
nickname: Ivanov Ivan Ivanovich
avatar: /media/avatar/default-avatar.jpg
role: user
isDeleted: false
createdAt: '2017-07-21T17:32:28Z'
updatedAt: '2017-07-21T17:32:28Z'
example2:
value:
_id: 807f1f77bcf81cd799439011
userId: 507f1f77bcf86cd799439011
nickname: Ivanov Ivan Ivanovich
avatar: /media/avatar/default-avatar.jpg
role: user
isDeleted: true
createdAt: '2017-07-21T17:32:28Z'
updatedAt: '2019-04-14T15:32:15Z'
deletedAt: '2021-08-17T13:23:44Z'
'400':
description: Bad Request
content:
application/json:
schema:
type: object
description: Bad Request
properties:
statusCode:
type: integer
error:
type: string
message:
type: string
example:
statusCode: 400
error: Bad Request
message: invalid user id
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
description: Unauthorized
properties:
statusCode:
type: integer
error:
type: string
message:
type: string
example:
statusCode: 401
error: Unauthorized
message: invalid token
'404':
description: Not Found
content:
application/json:
schema:
type: object
description: Not Found
properties:
statusCode:
type: integer
error:
type: string
message:
type: string
example:
statusCode: 404
error: Not Found
message: user not found
'409':
description: Conflict
content:
application/json:
schema:
type: object
description: Conflict
properties:
statusCode:
type: integer
error:
type: string
message:
type: string
example:
statusCode: 409
error: Conflict
message: account already exist
delete:
summary: Удаление аккаунта
tags:
- account
description: Помечает аккаунт удалённым, но не удаляет его из БД
security:
- bearer: [ ]
responses:
'200':
description: Аккаунт
content:
application/json:
schema:
description: Аккаунт
type: object
properties:
_id:
type: string
userId:
type: string
nickname:
type: string
avatar:
type: string
role:
type: string
isDeleted:
type: boolean
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
deletedAt:
type: string
format: date-time
examples:
example1:
value:
_id: 807f1f77bcf81cd799439011
userId: 507f1f77bcf86cd799439011
nickname: Ivanov Ivan Ivanovich
avatar: /media/avatar/default-avatar.jpg
role: user
isDeleted: false
createdAt: '2017-07-21T17:32:28Z'
updatedAt: '2017-07-21T17:32:28Z'
example2:
value:
_id: 807f1f77bcf81cd799439011
userId: 507f1f77bcf86cd799439011
nickname: Ivanov Ivan Ivanovich
avatar: /media/avatar/default-avatar.jpg
role: user
isDeleted: true
createdAt: '2017-07-21T17:32:28Z'
updatedAt: '2019-04-14T15:32:15Z'
deletedAt: '2021-08-17T13:23:44Z'
'400':
description: Bad Request
content:
application/json:
schema:
type: object
description: Bad Request
properties:
statusCode:
type: integer
error:
type: string
message:
type: string
example:
statusCode: 400
error: Bad Request
message: invalid user id
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
description: Unauthorized
properties:
statusCode:
type: integer
error:
type: string
message:
type: string
example:
statusCode: 401
error: Unauthorized
message: invalid token
'404':
description: Not Found
content:
application/json:
schema:
type: object
description: Not Found
properties:
statusCode:
type: integer
error:
type: string
message:
type: string
example:
statusCode: 404
error: Not Found
message: user not found
/account/restore:
post:
summary: Восстановление аккаунта
tags:
- account
description: Восстанавливает аккаунт, который не был удалён окончательно
security:
- bearer: [ ]
responses:
'200':
description: Аккаунт
content:
application/json:
schema:
description: Аккаунт
type: object
properties:
_id:
type: string
userId:
type: string
nickname:
type: string
avatar:
type: string
role:
type: string
isDeleted:
type: boolean
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
deletedAt:
type: string
format: date-time
examples:
example1:
value:
_id: 807f1f77bcf81cd799439011
userId: 507f1f77bcf86cd799439011
nickname: Ivanov Ivan Ivanovich
avatar: /media/avatar/default-avatar.jpg
role: user
isDeleted: false
createdAt: '2017-07-21T17:32:28Z'
updatedAt: '2017-07-21T17:32:28Z'
example2:
value:
_id: 807f1f77bcf81cd799439011
userId: 507f1f77bcf86cd799439011
nickname: Ivanov Ivan Ivanovich
avatar: /media/avatar/default-avatar.jpg
role: user
isDeleted: true
createdAt: '2017-07-21T17:32:28Z'
updatedAt: '2019-04-14T15:32:15Z'
deletedAt: '2021-08-17T13:23:44Z'
'400':
description: Bad Request
content:
application/json:
schema:
type: object
description: Bad Request
properties:
statusCode:
type: integer
error:
type: string
message:
type: string
example:
statusCode: 400
error: Bad Request
message: invalid user id
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
description: Unauthorized
properties:
statusCode:
type: integer
error:
type: string
message:
type: string
example:
statusCode: 401
error: Unauthorized
message: invalid token
'404':
description: Not Found
content:
application/json:
schema:
type: object
description: Not Found
properties:
statusCode:
type: integer
error:
type: string
message:
type: string
example:
statusCode: 404
error: Not Found
message: user not found
/account/role:
patch:
summary: Присвоение роли пользователя
tags:
- account
requestBody:
content:
application/json:
schema:
type: object
required:
- userId
- role
properties:
userId:
type: string
description: ID пользователя
role:
type: string
description: название роли
required: true
security:
- bearer: [ ]
responses:
'200':
description: Аккаунт
content:
application/json:
schema:
description: Аккаунт
type: object
properties:
_id:
type: string
userId:
type: string
nickname:
type: string
avatar:
type: string
role:
type: string
isDeleted:
type: boolean
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
deletedAt:
type: string
format: date-time
examples:
example1:
value:
_id: 807f1f77bcf81cd799439011
userId: 507f1f77bcf86cd799439011
nickname: Ivanov Ivan Ivanovich
avatar: /media/avatar/default-avatar.jpg
role: user
isDeleted: false
createdAt: '2017-07-21T17:32:28Z'
updatedAt: '2017-07-21T17:32:28Z'
example2:
value:
_id: 807f1f77bcf81cd799439011
userId: 507f1f77bcf86cd799439011
nickname: Ivanov Ivan Ivanovich
avatar: /media/avatar/default-avatar.jpg
role: user
isDeleted: true
createdAt: '2017-07-21T17:32:28Z'
updatedAt: '2019-04-14T15:32:15Z'
deletedAt: '2021-08-17T13:23:44Z'
'400':
description: Bad Request
content:
application/json:
schema:
type: object
description: Bad Request
properties:
statusCode:
type: integer
error:
type: string
message:
type: string
example:
statusCode: 400
error: Bad Request
message: invalid user id
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
description: Unauthorized
properties:
statusCode:
type: integer
error:
type: string
message:
type: string
example:
statusCode: 401
error: Unauthorized
message: invalid token
'404':
description: Not Found
content:
application/json:
schema:
type: object
description: Not Found
properties:
statusCode:
type: integer
error:
type: string
message:
type: string
example:
statusCode: 404
error: Not Found
message: user not found
/account/avatar:
patch:
summary: Присвоение аватарки пользователя
tags:
- account
requestBody:
content:
application/json:
schema:
type: object
required:
- userId
- avatar
properties:
userId:
type: string
description: ID пользователя
avatar:
type: string
description: путь до аватарки
required: true
security:
- bearer: [ ]
responses:
'200':
description: Аккаунт
content:
application/json:
schema:
description: Аккаунт
type: object
properties:
_id:
type: string
userId:
type: string
nickname:
type: string
avatar:
type: string
role:
type: string
isDeleted:
type: boolean
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
deletedAt:
type: string
format: date-time
examples:
example1:
value:
_id: 807f1f77bcf81cd799439011
userId: 507f1f77bcf86cd799439011
nickname: Ivanov Ivan Ivanovich
avatar: /media/avatar/default-avatar.jpg
role: user
isDeleted: false
createdAt: '2017-07-21T17:32:28Z'
updatedAt: '2017-07-21T17:32:28Z'
example2:
value:
_id: 807f1f77bcf81cd799439011
userId: 507f1f77bcf86cd799439011
nickname: Ivanov Ivan Ivanovich
avatar: /media/avatar/default-avatar.jpg
role: user
isDeleted: true
createdAt: '2017-07-21T17:32:28Z'
updatedAt: '2019-04-14T15:32:15Z'
deletedAt: '2021-08-17T13:23:44Z'
'400':
description: Bad Request
content:
application/json:
schema:
type: object
description: Bad Request
properties:
statusCode:
type: integer
error:
type: string
message:
type: string
example:
statusCode: 400
error: Bad Request
message: invalid user id
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
description: Unauthorized
properties:
statusCode:
type: integer
error:
type: string
message:
type: string
example:
statusCode: 401
error: Unauthorized
message: invalid token
'404':
description: Not Found
content:
application/json:
schema:
type: object
description: Not Found
properties:
statusCode:
type: integer
error:
type: string
message:
type: string
example:
statusCode: 404
error: Not Found
message: user not found
/account/nickname:
patch:
summary: Присвоение никнейма пользователя
tags:
- account
requestBody:
content:
application/json:
schema:
type: object
required:
- userId
- role
properties:
userId:
type: string
description: ID пользователя
nickname:
type: string
description: никнейм
required: true
security:
- bearer: [ ]
responses:
'200':
description: Аккаунт
content:
application/json:
schema:
description: Аккаунт
type: object
properties:
_id:
type: string
userId:
type: string
nickname:
type: string
avatar:
type: string
role:
type: string
isDeleted:
type: boolean
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
deletedAt:
type: string
format: date-time
examples:
example1:
value:
_id: 807f1f77bcf81cd799439011
userId: 507f1f77bcf86cd799439011
nickname: Ivanov Ivan Ivanovich
avatar: /media/avatar/default-avatar.jpg
role: user
isDeleted: false
createdAt: '2017-07-21T17:32:28Z'
updatedAt: '2017-07-21T17:32:28Z'
example2:
value:
_id: 807f1f77bcf81cd799439011
userId: 507f1f77bcf86cd799439011
nickname: Ivanov Ivan Ivanovich
avatar: /media/avatar/default-avatar.jpg
role: user
isDeleted: true
createdAt: '2017-07-21T17:32:28Z'
updatedAt: '2019-04-14T15:32:15Z'
deletedAt: '2021-08-17T13:23:44Z'
'400':
description: Bad Request
content:
application/json:
schema:
type: object
description: Bad Request
properties:
statusCode:
type: integer
error:
type: string
message:
type: string
example:
statusCode: 400
error: Bad Request
message: invalid user id
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
description: Unauthorized
properties:
statusCode:
type: integer
error:
type: string
message:
type: string
example:
statusCode: 401
error: Unauthorized
message: invalid token
'404':
description: Not Found
content:
application/json:
schema:
type: object
description: Not Found
properties:
statusCode:
type: integer
error:
type: string
message:
type: string
example:
statusCode: 404
error: Not Found
message: user not found
/account/delete:
delete:
summary: Удаление аккаунта
tags:
- account
description: Удаляет аккаунт из БД окончательно
security:
- bearer: [ ]
responses:
'200':
description: Аккаунт
content:
application/json:
schema:
description: Аккаунт
type: object
properties:
_id:
type: string
userId:
type: string
nickname:
type: string
avatar:
type: string
role:
type: string
isDeleted:
type: boolean
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
deletedAt:
type: string
format: date-time
examples:
example1:
value:
_id: 807f1f77bcf81cd799439011
userId: 507f1f77bcf86cd799439011
nickname: Ivanov Ivan Ivanovich
avatar: /media/avatar/default-avatar.jpg
role: user
isDeleted: false
createdAt: '2017-07-21T17:32:28Z'
updatedAt: '2017-07-21T17:32:28Z'
example2:
value:
_id: 807f1f77bcf81cd799439011
userId: 507f1f77bcf86cd799439011
nickname: Ivanov Ivan Ivanovich
avatar: /media/avatar/default-avatar.jpg
role: user
isDeleted: true
createdAt: '2017-07-21T17:32:28Z'
updatedAt: '2019-04-14T15:32:15Z'
deletedAt: '2021-08-17T13:23:44Z'
'400':
description: Bad Request
content:
application/json:
schema:
type: object
description: Bad Request
properties:
statusCode:
type: integer
error:
type: string
message:
type: string
example:
statusCode: 400
error: Bad Request
message: invalid user id
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
description: Unauthorized
properties:
statusCode:
type: integer
error:
type: string
message:
type: string
example:
statusCode: 401
error: Unauthorized
message: invalid token
'404':
description: Not Found
content:
application/json:
schema:
type: object
description: Not Found
properties:
statusCode:
type: integer
error:
type: string
message:
type: string
example:
statusCode: 404
error: Not Found
message: user not found
/account/delete/{userId}:
delete:
summary: Удаление аккаунта по ID
tags:
- account
description: Удаляет аккаунт из БД окончательно
parameters:
- schema:
type: string
in: path
name: userId
required: true
description: ID пользователя
security:
- bearer: [ ]
responses:
'200':
description: Аккаунт
content:
application/json:
schema:
description: Аккаунт
type: object
properties:
_id:
type: string
userId:
type: string
nickname:
type: string
avatar:
type: string
role:
type: string
isDeleted:
type: boolean
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
deletedAt:
type: string
format: date-time
examples:
example1:
value:
_id: 807f1f77bcf81cd799439011
userId: 507f1f77bcf86cd799439011
nickname: Ivanov Ivan Ivanovich
avatar: /media/avatar/default-avatar.jpg
role: user
isDeleted: false
createdAt: '2017-07-21T17:32:28Z'
updatedAt: '2017-07-21T17:32:28Z'
example2:
value:
_id: 807f1f77bcf81cd799439011
userId: 507f1f77bcf86cd799439011
nickname: Ivanov Ivan Ivanovich
avatar: /media/avatar/default-avatar.jpg
role: user
isDeleted: true
createdAt: '2017-07-21T17:32:28Z'
updatedAt: '2019-04-14T15:32:15Z'
deletedAt: '2021-08-17T13:23:44Z'
'400':
description: Bad Request
content:
application/json:
schema:
type: object
description: Bad Request
properties:
statusCode:
type: integer
error:
type: string
message:
type: string
example:
statusCode: 400
error: Bad Request
message: invalid user id
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
description: Unauthorized
properties:
statusCode:
type: integer
error:
type: string
message:
type: string
example:
statusCode: 401
error: Unauthorized
message: invalid token
'404':
description: Not Found
content:
application/json:
schema:
type: object
description: Not Found
properties:
statusCode:
type: integer
error:
type: string
message:
type: string
example:
statusCode: 404
error: Not Found
message: user not found
components:
securitySchemes:
bearer_in_cookie:
type: apiKey
name: Authorization
in: cookie
description: "Cookie Bearer JWT авторизация. Пример: 'Bearer gvrektljh23nklje'"
bearer_in_query:
type: apiKey
name: Authorization
in: query
description: "Query Bearer JWT авторизация. Пример: 'gvrektljh23nklje'"
responses:
ErrorOccurred:
description: Error occurred
content:
text/plain:
schema:
type: string
example: "SomeErrorOccurred"
BadRequest:
description: Bad request
content:
text/plain:
schema:
type: string
example: "No title"
MethodNotAllowed:
description: Method not allowed
content:
text/plain:
schema:
type: string
example: "No session"
Unauthorized:
description: Unauthorized
FailedDependency:
description: "Failed dependency"
content:
text/plain:
schema:
type: string
example: "flushing is not allowed"
RequestEntityTooLarge:
description: RequestEntityTooLarge
content:
text/plain:
schema:
type: string
example: "File too large"
NotAcceptable:
description: NotAcceptable
content:
text/plain:
schema:
type: string
example: "Unsupported Media Type"
TooManyRequests:
description: TooManyRequests
content:
text/plain:
schema:
type: string
example: "file upload limit exceeded"
AlreadyReported:
description: AlreadyReported
content:
text/plain:
schema:
type: string
example: "file already exists"
schemas:
Ticket:
type: object
properties:
ID:
type: string
example: "f34512sdaf234"
UserID:
type: string
example: "fw4ej5oi12mlfasd"
SessionID:
type: string
example: "fajsdlkgj34589w0"
AnswererID:
type: string
example: "ajrtopjnmklzweptik2"
State:
type: string
example: "open"
enum:
- "open"
- "closed"
- "answer"
- "wait"
TopMessage:
$ref: "#/components/schemas/Message"
Title:
type: string
example: "Test title"
CreatedAt:
type: string
format: date-time
example: "2017-07-21T17:32:28Z"
UpdatedAt:
type: string
format: date-time
example: "2017-07-21T17:32:28Z"
Rate:
type: integer
example: 1
Message:
type: object
properties:
ID:
type: string
example: "ZXC43n5klnzxlkcnfv34"
TicketID:
type: string
example: "jSDwerkljm23mios9"
UserID:
type: string
example: "flZmvlertjk6o453mlyhrty"
SessionID:
type: string
example: "ASpZp3245dllASgmkldrjJI"
Files:
type: array
items:
type: string
example: "iddoffile"
Shown:
type: object
additionalProperties:
type: integer
CreatedAt:
type: string
format: date-time
example: "2017-07-21T17:32:28Z"
security:
- bearer_in_cookie: []
- bearer_in_query: []