910 lines
23 KiB
YAML
910 lines
23 KiB
YAML
basePath: /api
|
||
definitions:
|
||
entities.DeleteUserRequest:
|
||
properties:
|
||
id:
|
||
type: string
|
||
type: object
|
||
entities.LoginRequest:
|
||
properties:
|
||
email:
|
||
type: string
|
||
password:
|
||
type: string
|
||
type: object
|
||
entities.RegisterRequest:
|
||
properties:
|
||
email:
|
||
type: string
|
||
password:
|
||
type: string
|
||
type: object
|
||
entities.TelegramAuthRequest:
|
||
properties:
|
||
access_token:
|
||
type: string
|
||
auth_date:
|
||
type: integer
|
||
first_name:
|
||
type: string
|
||
hash:
|
||
type: string
|
||
last_name:
|
||
type: string
|
||
photo_url:
|
||
type: string
|
||
refresh_token:
|
||
type: string
|
||
telegram_id:
|
||
type: integer
|
||
username:
|
||
type: string
|
||
type: object
|
||
entities.TokenPair:
|
||
properties:
|
||
access_token:
|
||
type: string
|
||
refresh_token:
|
||
type: string
|
||
type: object
|
||
entities.TokenRequest:
|
||
properties:
|
||
refresh_token:
|
||
type: string
|
||
type: object
|
||
entities.User:
|
||
properties:
|
||
created_at:
|
||
type: string
|
||
email:
|
||
type: string
|
||
first_name:
|
||
type: string
|
||
id:
|
||
type: string
|
||
last_login_date:
|
||
type: string
|
||
last_name:
|
||
type: string
|
||
password:
|
||
type: string
|
||
photo_url:
|
||
type: string
|
||
telegram_id:
|
||
type: integer
|
||
telegram_username:
|
||
type: string
|
||
updated_at:
|
||
type: string
|
||
type: object
|
||
entities.WishList:
|
||
properties:
|
||
created_at:
|
||
type: string
|
||
description:
|
||
type: string
|
||
id:
|
||
type: string
|
||
is_public:
|
||
type: boolean
|
||
photo_url:
|
||
type: string
|
||
title:
|
||
type: string
|
||
updated_at:
|
||
type: string
|
||
user_id:
|
||
type: string
|
||
type: object
|
||
entities.WishListItem:
|
||
properties:
|
||
cost:
|
||
type: number
|
||
created_at:
|
||
type: string
|
||
description:
|
||
type: string
|
||
id:
|
||
type: string
|
||
photo_url:
|
||
type: string
|
||
title:
|
||
type: string
|
||
updated_at:
|
||
type: string
|
||
url:
|
||
type: string
|
||
wish_list_id:
|
||
type: string
|
||
type: object
|
||
presenter.AuthResponse:
|
||
properties:
|
||
data:
|
||
$ref: '#/definitions/entities.TokenPair'
|
||
error:
|
||
type: string
|
||
status:
|
||
type: boolean
|
||
user:
|
||
$ref: '#/definitions/presenter.User'
|
||
type: object
|
||
presenter.User:
|
||
properties:
|
||
created_at:
|
||
type: string
|
||
email:
|
||
type: string
|
||
id:
|
||
type: string
|
||
updated_at:
|
||
type: string
|
||
type: object
|
||
presenter.UserResponse:
|
||
properties:
|
||
data:
|
||
$ref: '#/definitions/presenter.User'
|
||
error:
|
||
type: string
|
||
status:
|
||
type: boolean
|
||
type: object
|
||
presenter.UsersResponse:
|
||
properties:
|
||
data:
|
||
items:
|
||
$ref: '#/definitions/presenter.User'
|
||
type: array
|
||
error:
|
||
type: string
|
||
status:
|
||
type: boolean
|
||
type: object
|
||
presenter.WishList:
|
||
properties:
|
||
created_at:
|
||
type: string
|
||
description:
|
||
type: string
|
||
id:
|
||
type: string
|
||
is_public:
|
||
type: boolean
|
||
photo_url:
|
||
type: string
|
||
title:
|
||
type: string
|
||
updated_at:
|
||
type: string
|
||
user_id:
|
||
type: string
|
||
type: object
|
||
presenter.WishListItem:
|
||
properties:
|
||
cost:
|
||
type: number
|
||
created_at:
|
||
type: string
|
||
description:
|
||
type: string
|
||
id:
|
||
type: string
|
||
photo_url:
|
||
type: string
|
||
title:
|
||
type: string
|
||
updated_at:
|
||
type: string
|
||
url:
|
||
type: string
|
||
wish_list_id:
|
||
type: string
|
||
type: object
|
||
presenter.WishListItemResponse:
|
||
properties:
|
||
data:
|
||
$ref: '#/definitions/presenter.WishListItem'
|
||
error:
|
||
type: string
|
||
status:
|
||
type: boolean
|
||
type: object
|
||
presenter.WishListItemsResponse:
|
||
properties:
|
||
data:
|
||
items:
|
||
$ref: '#/definitions/presenter.WishListItem'
|
||
type: array
|
||
error:
|
||
type: string
|
||
status:
|
||
type: boolean
|
||
type: object
|
||
presenter.WishListResponse:
|
||
properties:
|
||
data:
|
||
$ref: '#/definitions/presenter.WishList'
|
||
error:
|
||
type: string
|
||
status:
|
||
type: boolean
|
||
type: object
|
||
presenter.WishListsResponse:
|
||
properties:
|
||
data:
|
||
items:
|
||
$ref: '#/definitions/presenter.WishList'
|
||
type: array
|
||
error:
|
||
type: string
|
||
status:
|
||
type: boolean
|
||
type: object
|
||
host: localhost:8080
|
||
info:
|
||
contact: {}
|
||
description: API-сервер для приложения списка желаний
|
||
license:
|
||
name: Apache 2.0
|
||
url: http://www.apache.org/licenses/LICENSE-2.0.html
|
||
title: Wish List API
|
||
version: "1.0"
|
||
paths:
|
||
/auth/login:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: Аутентифицирует пользователя и выдает JWT токены
|
||
parameters:
|
||
- description: Учетные данные пользователя
|
||
in: body
|
||
name: credentials
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/entities.LoginRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/presenter.AuthResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/presenter.AuthResponse'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/presenter.AuthResponse'
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
$ref: '#/definitions/presenter.AuthResponse'
|
||
summary: Вход пользователя
|
||
tags:
|
||
- auth
|
||
/auth/refresh:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: Обновляет JWT токены с помощью refresh токена
|
||
parameters:
|
||
- description: Refresh токен
|
||
in: body
|
||
name: refreshToken
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/entities.TokenRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/presenter.AuthResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/presenter.AuthResponse'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/presenter.AuthResponse'
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
$ref: '#/definitions/presenter.AuthResponse'
|
||
summary: Обновление токенов
|
||
tags:
|
||
- auth
|
||
/auth/register:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: Регистрирует нового пользователя и выдает JWT токены
|
||
parameters:
|
||
- description: Данные нового пользователя
|
||
in: body
|
||
name: user
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/entities.RegisterRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/presenter.AuthResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/presenter.AuthResponse'
|
||
"409":
|
||
description: Conflict
|
||
schema:
|
||
$ref: '#/definitions/presenter.AuthResponse'
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
$ref: '#/definitions/presenter.AuthResponse'
|
||
summary: Регистрация пользователя
|
||
tags:
|
||
- auth
|
||
/auth/telegram:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: Аутентифицирует пользователя через Telegram и выдает JWT токены
|
||
parameters:
|
||
- description: Данные аутентификации Telegram
|
||
in: body
|
||
name: credentials
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/entities.TelegramAuthRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/presenter.AuthResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/presenter.AuthResponse'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/presenter.AuthResponse'
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
$ref: '#/definitions/presenter.AuthResponse'
|
||
summary: Вход пользователя через Telegram
|
||
tags:
|
||
- auth
|
||
/users:
|
||
delete:
|
||
consumes:
|
||
- application/json
|
||
description: Удаляет пользователя из системы по ID
|
||
parameters:
|
||
- description: ID пользователя для удаления
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/entities.DeleteUserRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/presenter.UserResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/presenter.UserResponse'
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
$ref: '#/definitions/presenter.UserResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: Удалить пользователя
|
||
tags:
|
||
- users
|
||
get:
|
||
consumes:
|
||
- application/json
|
||
description: Возвращает список всех пользователей в системе
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/presenter.UsersResponse'
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
$ref: '#/definitions/presenter.UserResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: Получить всех пользователей
|
||
tags:
|
||
- users
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: Создает нового пользователя в системе
|
||
parameters:
|
||
- description: Информация о пользователе
|
||
in: body
|
||
name: user
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/entities.User'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/presenter.UserResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/presenter.UserResponse'
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
$ref: '#/definitions/presenter.UserResponse'
|
||
summary: Добавить нового пользователя
|
||
tags:
|
||
- users
|
||
put:
|
||
consumes:
|
||
- application/json
|
||
description: Обновляет информацию о существующем пользователе
|
||
parameters:
|
||
- description: Информация о пользователе для обновления
|
||
in: body
|
||
name: user
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/entities.User'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/presenter.UserResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/presenter.UserResponse'
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
$ref: '#/definitions/presenter.UserResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: Обновить пользователя
|
||
tags:
|
||
- users
|
||
/users/{id}:
|
||
get:
|
||
consumes:
|
||
- application/json
|
||
description: Возвращает информацию о пользователе по его ID
|
||
parameters:
|
||
- description: ID пользователя
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/presenter.UserResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/presenter.UserResponse'
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
$ref: '#/definitions/presenter.UserResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: Получить пользователя по ID
|
||
tags:
|
||
- users
|
||
/users/email/{email}:
|
||
get:
|
||
consumes:
|
||
- application/json
|
||
description: Возвращает информацию о пользователе по его Email
|
||
parameters:
|
||
- description: Email пользователя
|
||
in: path
|
||
name: email
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/presenter.UserResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/presenter.UserResponse'
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
$ref: '#/definitions/presenter.UserResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: Получить пользователя по Email
|
||
tags:
|
||
- users
|
||
/wishlist:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: Create a new wishlist for the authenticated user
|
||
parameters:
|
||
- description: Bearer token
|
||
in: header
|
||
name: Authorization
|
||
required: true
|
||
type: string
|
||
- description: Wishlist data
|
||
in: body
|
||
name: wishlist
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/entities.WishList'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"201":
|
||
description: Created
|
||
schema:
|
||
$ref: '#/definitions/presenter.WishListResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/presenter.WishListResponse'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/presenter.WishListResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: Create a new wishlist
|
||
tags:
|
||
- wishlist
|
||
/wishlist/{id}:
|
||
delete:
|
||
consumes:
|
||
- application/json
|
||
description: Delete a wishlist and all its items
|
||
parameters:
|
||
- description: Bearer token
|
||
in: header
|
||
name: Authorization
|
||
required: true
|
||
type: string
|
||
- description: Wishlist ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/presenter.WishListResponse'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/presenter.WishListResponse'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/presenter.WishListResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: Delete a wishlist
|
||
tags:
|
||
- wishlist
|
||
get:
|
||
consumes:
|
||
- application/json
|
||
description: Get a wishlist by its ID
|
||
parameters:
|
||
- description: Wishlist ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/presenter.WishListResponse'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/presenter.WishListResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: Get a wishlist
|
||
tags:
|
||
- wishlist
|
||
put:
|
||
consumes:
|
||
- application/json
|
||
description: Update an existing wishlist
|
||
parameters:
|
||
- description: Bearer token
|
||
in: header
|
||
name: Authorization
|
||
required: true
|
||
type: string
|
||
- description: Wishlist ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
- description: Updated wishlist data
|
||
in: body
|
||
name: wishlist
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/entities.WishList'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/presenter.WishListResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/presenter.WishListResponse'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/presenter.WishListResponse'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/presenter.WishListResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: Update a wishlist
|
||
tags:
|
||
- wishlist
|
||
/wishlist/{wishlistId}/items:
|
||
get:
|
||
consumes:
|
||
- application/json
|
||
description: Get all items in a wishlist
|
||
parameters:
|
||
- description: Wishlist ID
|
||
in: path
|
||
name: wishlistId
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/presenter.WishListItemsResponse'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/presenter.WishListItemsResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: Get wishlist items
|
||
tags:
|
||
- wishlist-items
|
||
/wishlist/item:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: Create a new item for a wishlist
|
||
parameters:
|
||
- description: Bearer token
|
||
in: header
|
||
name: Authorization
|
||
required: true
|
||
type: string
|
||
- description: Wishlist item data
|
||
in: body
|
||
name: item
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/entities.WishListItem'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"201":
|
||
description: Created
|
||
schema:
|
||
$ref: '#/definitions/presenter.WishListItemResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/presenter.WishListItemResponse'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/presenter.WishListItemResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: Create a wishlist item
|
||
tags:
|
||
- wishlist-items
|
||
/wishlist/item/{id}:
|
||
delete:
|
||
consumes:
|
||
- application/json
|
||
description: Delete a wishlist item
|
||
parameters:
|
||
- description: Bearer token
|
||
in: header
|
||
name: Authorization
|
||
required: true
|
||
type: string
|
||
- description: Item ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/presenter.WishListItemResponse'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/presenter.WishListItemResponse'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/presenter.WishListItemResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: Delete a wishlist item
|
||
tags:
|
||
- wishlist-items
|
||
get:
|
||
consumes:
|
||
- application/json
|
||
description: Get a wishlist item by its ID
|
||
parameters:
|
||
- description: Item ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/presenter.WishListItemResponse'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/presenter.WishListItemResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: Get a wishlist item
|
||
tags:
|
||
- wishlist-items
|
||
put:
|
||
consumes:
|
||
- application/json
|
||
description: Update an existing wishlist item
|
||
parameters:
|
||
- description: Bearer token
|
||
in: header
|
||
name: Authorization
|
||
required: true
|
||
type: string
|
||
- description: Item ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
- description: Updated item data
|
||
in: body
|
||
name: item
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/entities.WishListItem'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/presenter.WishListItemResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/presenter.WishListItemResponse'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/presenter.WishListItemResponse'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/presenter.WishListItemResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: Update a wishlist item
|
||
tags:
|
||
- wishlist-items
|
||
/wishlist/user/{userId}:
|
||
get:
|
||
consumes:
|
||
- application/json
|
||
description: Get all wishlists for a specific user
|
||
parameters:
|
||
- description: User ID
|
||
in: path
|
||
name: userId
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/presenter.WishListsResponse'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/presenter.WishListResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: Get user wishlists
|
||
tags:
|
||
- wishlist
|
||
securityDefinitions:
|
||
BearerAuth:
|
||
in: header
|
||
name: Authorization
|
||
type: apiKey
|
||
swagger: "2.0"
|