basePath: /api/ definitions: controllers.HealthStatus: properties: healthy: type: boolean type: object models.ChangePasswordRequest: properties: old_password: type: string password: type: string totp: type: string required: - old_password - password 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: 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: /account/changePassword: put: consumes: - application/json produces: - application/json responses: {} security: - JWT: [] summary: Change account password tags: - Account /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 /profile: patch: consumes: - application/json produces: - application/json responses: {} security: - JWT: [] summary: Update profile tags: - Profile /profile/{username}: get: consumes: - application/json parameters: - description: Username in: path name: username required: true type: string produces: - application/json responses: {} security: - JWT: [] summary: Get someone's profile details tags: - Profile /profile/me: get: consumes: - application/json produces: - application/json responses: {} security: - JWT: [] summary: Get own profile when authorized tags: - Profile /profile/privacy: get: consumes: - application/json produces: - application/json responses: {} security: - JWT: [] summary: Get profile privacy settings tags: - Profile patch: consumes: - application/json produces: - application/json responses: {} security: - JWT: [] summary: Update profile privacy settings tags: - Profile /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/controllers.HealthStatus' summary: Get health status tags: - Service schemes: - http securityDefinitions: JWT: in: header name: Authorization type: apiKey swagger: "2.0"