api/docs/swagger.yaml

939 lines
25 KiB
YAML
Raw Normal View History

2025-07-06 22:29:48 +03:00
basePath: /api/v2
definitions:
2025-10-26 19:54:51 +03:00
imageStorage.UploadMerchImageResponse:
properties:
fullImage:
type: string
thumbnail:
type: string
type: object
2025-11-02 21:10:59 +03:00
merch.DeleteZeroPrices:
properties:
2025-11-02 23:39:25 +03:00
id:
type: integer
merch_uuid:
type: string
2025-11-02 21:10:59 +03:00
type: object
2025-10-18 14:11:58 +03:00
merch.ImageLink:
properties:
etag:
type: string
link:
type: string
type: object
2025-10-28 20:30:05 +03:00
merch.LabelDTO:
properties:
bg_color:
type: string
color:
type: string
name:
type: string
type: object
merch.LabelLink:
properties:
label_uuid:
type: string
merch_uuid:
type: string
type: object
merch.LabelsList:
properties:
bg_color:
type: string
color:
type: string
label_uuid:
type: string
name:
type: string
type: object
2025-09-18 17:09:58 +03:00
merch.ListResponse:
properties:
2025-11-02 21:10:59 +03:00
labels:
items:
type: string
type: array
2025-09-18 17:09:58 +03:00
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:
2025-11-02 21:10:59 +03:00
labels:
items:
type: string
type: array
2025-09-15 15:13:56 +03:00
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-11-02 21:10:59 +03:00
merch.ZeroPrice:
properties:
created_at:
type: string
2025-11-02 23:39:25 +03:00
id:
type: integer
2025-11-02 21:10:59 +03:00
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: Получить все записи мерча
2025-11-02 21:10:59 +03:00
produces:
- application/json
2025-09-18 17:24:06 +03:00
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:
2025-11-02 23:39:25 +03:00
consumes:
- application/json
2025-10-15 19:46:22 +03:00
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-11-02 21:10:59 +03:00
produces:
- application/json
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:
2025-10-26 19:54:51 +03:00
description: Удалить (безвозвратно) картинки по merch_uuid
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-26 19:54:51 +03:00
summary: Удалить (безвозвратно) картинки по merch_uuid
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
2025-11-02 21:10:59 +03:00
produces:
- application/json
2025-10-15 19:46:22 +03:00
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
2025-10-26 19:54:51 +03:00
description: Загрузить картинку по merch_uuid. В ответ будут выданы ссылки на
созданные картинки.
2025-10-15 19:46:22 +03:00
parameters:
- description: Merch UUID
in: path
name: uuid
required: true
type: string
- description: Image file
in: formData
name: file
required: true
type: file
produces:
- application/json
responses:
"200":
description: OK
2025-10-26 19:54:51 +03:00
schema:
$ref: '#/definitions/imageStorage.UploadMerchImageResponse'
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: []
2025-10-26 19:54:51 +03:00
summary: Загрузить картинку по merch_uuid
2025-10-15 19:46:22 +03:00
tags:
- Merch images
2025-10-28 20:30:05 +03:00
/merch/labels:
get:
description: Получить все метки товаров
2025-11-02 21:10:59 +03:00
produces:
- application/json
2025-10-28 20:30:05 +03:00
responses:
"200":
description: OK
schema:
items:
$ref: '#/definitions/merch.LabelsList'
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 labels
post:
2025-11-02 23:39:25 +03:00
consumes:
- application/json
2025-10-28 20:30:05 +03:00
description: Создать новую метку для товара
parameters:
- description: payload
in: body
name: payload
required: true
schema:
$ref: '#/definitions/merch.LabelDTO'
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 labels
/merch/labels/{uuid}:
delete:
description: Пометить метку как удаленную
parameters:
- description: label uuid
in: path
name: uuid
required: true
type: string
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 labels
2025-11-02 21:10:59 +03:00
get:
description: Получить метки товара по его uuid
parameters:
- description: label uuid
in: path
name: uuid
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: Получить метки товара по его uuid
tags:
- Merch labels
2025-10-28 20:30:05 +03:00
put:
2025-11-02 23:39:25 +03:00
consumes:
- application/json
2025-10-28 20:30:05 +03:00
description: Изменить метку
parameters:
- description: label uuid
in: path
name: uuid
required: true
type: string
- description: payload
in: body
name: payload
required: true
schema:
$ref: '#/definitions/merch.LabelDTO'
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 labels
/merch/labels/attach:
post:
2025-11-02 23:39:25 +03:00
consumes:
- application/json
2025-10-28 20:30:05 +03:00
description: Прикрепить метку к товару
parameters:
- description: payload
in: body
name: payload
required: true
schema:
$ref: '#/definitions/merch.LabelLink'
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 labels
/merch/labels/detach:
post:
2025-11-02 23:39:25 +03:00
consumes:
- application/json
2025-10-28 20:30:05 +03:00
description: Удалить привязку метки к товару
parameters:
- description: payload
in: body
name: payload
required: true
schema:
$ref: '#/definitions/merch.LabelLink'
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 labels
2025-11-02 21:10:59 +03:00
/merch/zeroprices:
delete:
2025-11-02 23:39:25 +03:00
consumes:
- application/json
2025-11-02 21:10:59 +03:00
description: Пометить нулевые цены как удаленные
parameters:
- description: payload
in: body
name: payload
required: true
schema:
$ref: '#/definitions/merch.DeleteZeroPrices'
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 zero prices
get:
description: Получить нулевые цены
produces:
- application/json
responses:
"200":
description: OK
schema:
items:
$ref: '#/definitions/merch.ZeroPrice'
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 zero prices
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
2025-11-02 21:10:59 +03:00
produces:
- application/json
2025-09-24 20:28:49 +03:00
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
2025-11-02 21:10:59 +03:00
produces:
- application/json
2025-09-26 20:16:30 +03:00
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"