api/docs/swagger.yaml

628 lines
17 KiB
YAML
Raw Normal View History

2025-07-06 22:29:48 +03:00
basePath: /api/v2
definitions:
2025-10-18 14:11:58 +03:00
merch.ImageLink:
properties:
etag:
type: string
link:
type: string
type: object
2025-09-18 17:09:58 +03:00
merch.ListResponse:
properties:
merch_uuid:
type: string
name:
type: string
type: object
2025-09-15 15:13:56 +03:00
merch.MandarakeDTO:
properties:
link:
type: string
type: object
merch.MerchDTO:
properties:
merch_uuid:
type: string
name:
type: string
origin_mandarake:
$ref: '#/definitions/merch.MandarakeDTO'
origin_surugaya:
$ref: '#/definitions/merch.SurugayaDTO'
type: object
2025-09-24 20:28:49 +03:00
merch.OriginWithPrices:
properties:
origin:
type: integer
prices:
items:
$ref: '#/definitions/merch.PriceEntry'
type: array
type: object
merch.PriceEntry:
2025-09-15 15:13:56 +03:00
properties:
2025-09-24 20:28:49 +03:00
created_at:
2025-09-26 20:16:30 +03:00
type: integer
2025-09-24 20:28:49 +03:00
value:
type: integer
type: object
merch.PricesResponse:
properties:
merch_uuid:
type: string
name:
2025-09-15 15:13:56 +03:00
type: string
2025-09-24 20:28:49 +03:00
origins:
items:
$ref: '#/definitions/merch.OriginWithPrices'
type: array
type: object
merch.SurugayaDTO:
properties:
2025-09-15 15:13:56 +03:00
link:
type: string
type: object
2025-10-15 19:46:22 +03:00
merch.UpdateMerchDTO:
properties:
link:
type: string
merch_uuid:
type: string
name:
type: string
origin:
type: string
type: object
2025-07-06 22:29:48 +03:00
responses.ErrorResponse400:
properties:
error:
example: Bad Request
type: string
type: object
responses.ErrorResponse401:
properties:
error:
example: Unauthorized
type: string
type: object
responses.ErrorResponse500:
properties:
error:
example: Internal Server Error
type: string
type: object
2025-09-14 19:34:06 +03:00
shared.CurrentSession:
properties:
expires:
type: string
uuid:
type: string
type: object
2025-07-06 22:29:48 +03:00
user.Info:
properties:
created_at:
type: string
email:
type: string
username:
type: string
type: object
2025-07-07 17:49:34 +03:00
user.Login:
properties:
email:
type: string
password:
type: string
type: object
2025-09-12 23:54:56 +03:00
user.LoginResponse:
properties:
access_token:
type: string
type: object
2025-07-06 22:29:48 +03:00
user.Register:
properties:
email:
type: string
password:
type: string
username:
type: string
type: object
user.Update:
properties:
email:
type: string
username:
type: string
type: object
info:
contact: {}
title: Merch Parser
version: 2.0.0-alpha
paths:
2025-09-15 15:13:56 +03:00
/merch:
post:
consumes:
- application/json
description: Добавить новый мерч
parameters:
- description: новый мерч
in: body
name: body
required: true
schema:
$ref: '#/definitions/merch.MerchDTO'
responses:
"200":
description: OK
"400":
description: Bad Request
schema:
$ref: '#/definitions/responses.ErrorResponse400'
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/responses.ErrorResponse500'
security:
- BearerAuth: []
summary: Добавить новый мерч
tags:
- Merch
2025-09-18 17:24:06 +03:00
/merch/:
get:
description: Получить все записи мерча
responses:
"200":
description: OK
schema:
items:
$ref: '#/definitions/merch.ListResponse'
type: array
"400":
description: Bad Request
schema:
$ref: '#/definitions/responses.ErrorResponse400'
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/responses.ErrorResponse500'
security:
- BearerAuth: []
summary: Получить все записи мерча
tags:
- Merch
2025-10-15 19:46:22 +03:00
put:
description: Обновить информацию про мерч по его uuid в json-е
parameters:
- description: merch_uuid
in: body
name: body
required: true
schema:
$ref: '#/definitions/merch.UpdateMerchDTO'
responses:
"200":
description: OK
"400":
description: Bad Request
schema:
$ref: '#/definitions/responses.ErrorResponse400'
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/responses.ErrorResponse500'
security:
- BearerAuth: []
summary: Обновить информацию про мерч
tags:
- Merch
2025-09-18 17:09:58 +03:00
/merch/{uuid}:
delete:
description: Пометить мерч как удаленный по его uuid
parameters:
- description: merch_uuid
in: path
name: uuid
required: true
type: string
responses:
"200":
description: OK
schema:
$ref: '#/definitions/merch.MerchDTO'
"400":
description: Bad Request
schema:
$ref: '#/definitions/responses.ErrorResponse400'
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/responses.ErrorResponse500'
security:
- BearerAuth: []
summary: Пометить мерч как удаленный
tags:
- Merch
get:
2025-09-18 17:24:06 +03:00
description: Получить всю информацию про мерч по его uuid
parameters:
- description: merch_uuid
in: path
name: uuid
required: true
type: string
2025-09-18 17:09:58 +03:00
responses:
"200":
description: OK
schema:
2025-09-18 17:24:06 +03:00
$ref: '#/definitions/merch.MerchDTO'
2025-09-18 17:09:58 +03:00
"400":
description: Bad Request
schema:
$ref: '#/definitions/responses.ErrorResponse400'
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/responses.ErrorResponse500'
security:
- BearerAuth: []
2025-09-18 17:24:06 +03:00
summary: Получить всю информацию про мерч
2025-09-18 17:09:58 +03:00
tags:
- Merch
2025-10-15 19:46:22 +03:00
/merch/images/{uuid}:
delete:
description: Удалить (безвозвратно) картинки по merch_uuid и query параметрам
2025-09-18 17:09:58 +03:00
parameters:
- description: merch_uuid
2025-10-15 19:46:22 +03:00
in: path
name: uuid
2025-09-18 17:09:58 +03:00
required: true
2025-10-15 19:46:22 +03:00
type: string
2025-09-18 17:09:58 +03:00
responses:
"200":
description: OK
"400":
description: Bad Request
schema:
$ref: '#/definitions/responses.ErrorResponse400'
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/responses.ErrorResponse500'
security:
- BearerAuth: []
2025-10-15 19:46:22 +03:00
summary: Удалить (безвозвратно) картинки по merch_uuid и query параметрам
2025-09-18 17:09:58 +03:00
tags:
2025-10-15 19:46:22 +03:00
- Merch images
get:
description: Получить картинки по merch_uuid и query параметрам
parameters:
- description: merch_uuid
in: path
name: uuid
required: true
type: string
- description: image type
in: query
name: type
required: true
type: string
responses:
"200":
description: OK
schema:
2025-10-18 14:11:58 +03:00
$ref: '#/definitions/merch.ImageLink'
2025-10-15 19:46:22 +03:00
"400":
description: Bad Request
schema:
$ref: '#/definitions/responses.ErrorResponse400'
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/responses.ErrorResponse500'
security:
- BearerAuth: []
summary: Получить картинки по merch_uuid и query параметрам
tags:
- Merch images
post:
consumes:
- multipart/form-data
description: Загрузить картинки по merch_uuid и query параметрам
parameters:
- description: Merch UUID
in: path
name: uuid
required: true
type: string
- description: Image file
in: formData
name: file
required: true
type: file
- description: 'Image type: thumbnail, full or all'
enum:
- thumbnail
- full
- all
in: formData
name: imageType
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
"400":
description: Bad Request
schema:
$ref: '#/definitions/responses.ErrorResponse400'
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/responses.ErrorResponse500'
security:
- BearerAuth: []
summary: Загрузить картинки по merch_uuid и query параметрам
tags:
- Merch images
2025-09-24 20:28:49 +03:00
/prices:
get:
description: Получить цены мерча за период
parameters:
2025-09-26 20:16:30 +03:00
- description: period in days
2025-09-24 20:28:49 +03:00
in: query
name: days
type: string
responses:
"200":
description: OK
schema:
items:
$ref: '#/definitions/merch.PricesResponse'
type: array
"400":
description: Bad Request
schema:
$ref: '#/definitions/responses.ErrorResponse400'
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/responses.ErrorResponse500'
security:
- BearerAuth: []
summary: Получить цены мерча за период
tags:
- Merch
2025-09-26 20:16:30 +03:00
/prices/{uuid}:
get:
description: Получить перепады цен мерча за период по его merch_uuid
parameters:
- description: merch_uuid
in: path
name: uuid
required: true
type: string
- description: period in days
in: query
name: days
type: string
responses:
"200":
description: OK
schema:
$ref: '#/definitions/merch.PricesResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/responses.ErrorResponse400'
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/responses.ErrorResponse500'
security:
- BearerAuth: []
summary: Получить перепады цен мерча за период по его merch_uuid
tags:
- Merch
2025-07-06 22:29:48 +03:00
/user:
delete:
description: Помечает пользователя как удаленного по его uuid из токена
responses:
"200":
description: OK
"400":
description: Bad Request
schema:
$ref: '#/definitions/responses.ErrorResponse400'
"401":
description: Unauthorized
schema:
$ref: '#/definitions/responses.ErrorResponse401'
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/responses.ErrorResponse500'
security:
- BearerAuth: []
summary: Удалить пользователя
tags:
- Users
get:
description: Получает информацию о пользователе по его uuid из токена
responses:
"200":
description: OK
schema:
$ref: '#/definitions/user.Info'
"400":
description: Bad Request
schema:
$ref: '#/definitions/responses.ErrorResponse400'
"401":
description: Unauthorized
schema:
$ref: '#/definitions/responses.ErrorResponse401'
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/responses.ErrorResponse500'
security:
- BearerAuth: []
summary: Получить информацию о пользователе
tags:
- Users
post:
consumes:
- application/json
description: Регистрация нового пользователя
parameters:
- description: новый пользователь
in: body
name: body
required: true
schema:
$ref: '#/definitions/user.Register'
responses:
"200":
description: OK
"400":
description: Bad Request
schema:
$ref: '#/definitions/responses.ErrorResponse400'
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/responses.ErrorResponse500'
summary: Регистрация нового пользователя
tags:
- Users
put:
consumes:
- application/json
description: Обновить информацию о пользователе по его uuid из токена
parameters:
- description: изменения
in: body
name: body
required: true
schema:
$ref: '#/definitions/user.Update'
responses:
"200":
description: OK
"400":
description: Bad Request
schema:
$ref: '#/definitions/responses.ErrorResponse400'
"401":
description: Unauthorized
schema:
$ref: '#/definitions/responses.ErrorResponse401'
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/responses.ErrorResponse500'
security:
- BearerAuth: []
summary: Обновить информацию о пользователе
tags:
- Users
2025-09-14 19:34:06 +03:00
/user/auth/current-session:
get:
description: Возвращает информацию о текущей сессии пользователя
responses:
"200":
description: OK
schema:
$ref: '#/definitions/shared.CurrentSession'
"400":
description: Bad Request
schema:
$ref: '#/definitions/responses.ErrorResponse400'
"401":
description: Unauthorized
schema:
$ref: '#/definitions/responses.ErrorResponse401'
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/responses.ErrorResponse500'
security:
- BearerAuth: []
summary: Возвращает информацию о текущей сессии пользователя
tags:
- Users
2025-09-12 23:54:56 +03:00
/user/auth/login:
2025-07-07 17:49:34 +03:00
post:
consumes:
- application/json
description: Логин
parameters:
- description: логин
in: body
name: body
required: true
schema:
$ref: '#/definitions/user.Login'
responses:
"200":
description: OK
2025-09-12 23:54:56 +03:00
schema:
$ref: '#/definitions/user.LoginResponse'
2025-07-07 17:49:34 +03:00
"400":
description: Bad Request
schema:
$ref: '#/definitions/responses.ErrorResponse400'
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/responses.ErrorResponse500'
summary: Логин
tags:
- Users - auth
2025-09-12 23:54:56 +03:00
/user/auth/logout:
2025-07-07 17:49:34 +03:00
post:
2025-09-12 23:54:56 +03:00
description: Логаут. Для логаута надо передать refresh token, он будет инвалидирован.
2025-07-07 17:49:34 +03:00
responses:
"200":
description: OK
"400":
description: Bad Request
schema:
$ref: '#/definitions/responses.ErrorResponse400'
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/responses.ErrorResponse500'
summary: Логаут
tags:
- Users - auth
2025-09-12 23:54:56 +03:00
/user/auth/refresh:
2025-07-07 17:49:34 +03:00
post:
2025-09-14 16:23:01 +03:00
description: Принимает рефреш токен в http only куки
2025-07-07 17:49:34 +03:00
responses:
"200":
description: OK
2025-09-12 23:54:56 +03:00
schema:
$ref: '#/definitions/user.LoginResponse'
2025-07-07 17:49:34 +03:00
"400":
description: Bad Request
schema:
$ref: '#/definitions/responses.ErrorResponse400'
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/responses.ErrorResponse500'
summary: Обновление аксесс токена по рефреш токену.
tags:
- Users - auth
2025-07-06 22:29:48 +03:00
securityDefinitions:
BearerAuth:
description: Введите "Bearer {your_token}" для аутентификации
in: header
name: Authorization
type: apiKey
swagger: "2.0"