311 lines
6.9 KiB
YAML
311 lines
6.9 KiB
YAML
basePath: /api/
|
|
definitions:
|
|
models.ChangePasswordRequest:
|
|
properties:
|
|
old_password:
|
|
type: string
|
|
password:
|
|
type: string
|
|
totp:
|
|
type: string
|
|
required:
|
|
- old_password
|
|
- password
|
|
type: object
|
|
models.HealthStatusResponse:
|
|
properties:
|
|
healthy:
|
|
type: boolean
|
|
type: object
|
|
models.LoginRequest:
|
|
properties:
|
|
password:
|
|
maxLength: 100
|
|
type: string
|
|
totp:
|
|
type: string
|
|
username:
|
|
maxLength: 20
|
|
minLength: 3
|
|
type: string
|
|
required:
|
|
- password
|
|
- username
|
|
type: object
|
|
models.LoginResponse:
|
|
properties:
|
|
access_token:
|
|
type: string
|
|
refresh_token:
|
|
type: string
|
|
type: object
|
|
models.PasswordResetBeginRequest:
|
|
properties:
|
|
email:
|
|
type: string
|
|
required:
|
|
- email
|
|
type: object
|
|
models.PasswordResetCompleteRequest:
|
|
properties:
|
|
email:
|
|
type: string
|
|
log_out_sessions:
|
|
type: boolean
|
|
password:
|
|
type: string
|
|
verification_code:
|
|
type: string
|
|
required:
|
|
- email
|
|
- password
|
|
- verification_code
|
|
type: object
|
|
models.PasswordResetCompleteResponse:
|
|
properties:
|
|
access_token:
|
|
type: string
|
|
refresh_token:
|
|
type: string
|
|
type: object
|
|
models.RefreshRequest:
|
|
properties:
|
|
refresh_token:
|
|
maxLength: 2000
|
|
type: string
|
|
required:
|
|
- refresh_token
|
|
type: object
|
|
models.RefreshResponse:
|
|
properties:
|
|
access_token:
|
|
type: string
|
|
refresh_token:
|
|
type: string
|
|
type: object
|
|
models.RegistrationBeginRequest:
|
|
properties:
|
|
email:
|
|
type: string
|
|
password:
|
|
type: string
|
|
username:
|
|
type: string
|
|
required:
|
|
- email
|
|
- password
|
|
- username
|
|
type: object
|
|
models.RegistrationCompleteRequest:
|
|
properties:
|
|
birthday:
|
|
type: string
|
|
name:
|
|
type: string
|
|
username:
|
|
type: string
|
|
verification_code:
|
|
type: string
|
|
required:
|
|
- name
|
|
- username
|
|
- verification_code
|
|
type: object
|
|
models.RegistrationCompleteResponse:
|
|
properties:
|
|
access_token:
|
|
type: string
|
|
refresh_token:
|
|
type: string
|
|
type: object
|
|
info:
|
|
contact: {}
|
|
description: Easy and feature-rich wishlist.
|
|
license:
|
|
name: GPL-3.0
|
|
title: Easywish client API
|
|
version: "1.0"
|
|
paths:
|
|
/auth/changePassword:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: ' '
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.ChangePasswordRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Password successfully changed
|
|
"403":
|
|
description: Invalid old password
|
|
security:
|
|
- JWT: []
|
|
summary: Set new password using the old password
|
|
tags:
|
|
- Auth
|
|
/auth/login:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: ' '
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.LoginRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: ' '
|
|
schema:
|
|
$ref: '#/definitions/models.LoginResponse'
|
|
"403":
|
|
description: Invalid login credentials
|
|
summary: Acquire tokens via login credentials (and 2FA code if needed)
|
|
tags:
|
|
- Auth
|
|
/auth/passwordResetBegin:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: ' '
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.PasswordResetBeginRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Reset code sent to the email if it is attached to an account
|
|
"429":
|
|
description: Too many recent requests for this email
|
|
summary: Request password reset email
|
|
tags:
|
|
- Auth
|
|
/auth/passwordResetComplete:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: ' '
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.PasswordResetCompleteRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: ' '
|
|
schema:
|
|
$ref: '#/definitions/models.PasswordResetCompleteResponse'
|
|
"403":
|
|
description: Wrong verification code or username
|
|
summary: Complete password reset via email code
|
|
tags:
|
|
- Auth
|
|
/auth/refresh:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: ' '
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.RefreshRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: ' '
|
|
schema:
|
|
$ref: '#/definitions/models.RefreshResponse'
|
|
"401":
|
|
description: Invalid refresh token
|
|
summary: Receive new tokens via refresh token
|
|
tags:
|
|
- Auth
|
|
/auth/registrationBegin:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: ' '
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.RegistrationBeginRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Account is created and awaiting verification
|
|
"409":
|
|
description: Username or email is already taken
|
|
"429":
|
|
description: Too many recent registration attempts for this email
|
|
summary: Register an account
|
|
tags:
|
|
- Auth
|
|
/auth/registrationComplete:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: ' '
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.RegistrationCompleteRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: ' '
|
|
schema:
|
|
$ref: '#/definitions/models.RegistrationCompleteResponse'
|
|
"403":
|
|
description: Invalid email or verification code
|
|
summary: Confirm with code, finish creating the account
|
|
tags:
|
|
- Auth
|
|
/service/health:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Used internally for checking service health
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Says whether it's healthy or not
|
|
schema:
|
|
$ref: '#/definitions/models.HealthStatusResponse'
|
|
summary: Get health status
|
|
tags:
|
|
- Service
|
|
schemes:
|
|
- http
|
|
securityDefinitions:
|
|
JWT:
|
|
in: header
|
|
name: Authorization
|
|
type: apiKey
|
|
swagger: "2.0"
|