{ "schemes": [ "http" ], "swagger": "2.0", "info": { "description": "Easy and feature-rich wishlist.", "title": "Easywish client API", "contact": {}, "license": { "name": "GPL 3.0" }, "version": "1.0" }, "basePath": "/api/", "paths": { "/account/changePassword": { "put": { "security": [ { "JWT": [] } ], "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Account" ], "summary": "Change account password", "responses": {} } }, "/auth/login": { "post": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Auth" ], "summary": "Acquire tokens via login credentials (and 2FA code if needed)", "parameters": [ { "description": "desc", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.LoginRequest" } } ], "responses": { "200": { "description": "desc", "schema": { "$ref": "#/definitions/models.LoginResponse" } } } } }, "/auth/passwordResetBegin": { "post": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Auth" ], "summary": "Request password reset email", "responses": {} } }, "/auth/passwordResetComplete": { "post": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Auth" ], "summary": "Complete password reset with email code and provide 2FA code or backup code if needed", "responses": {} } }, "/auth/refresh": { "post": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Auth" ], "summary": "Receive new tokens via refresh token", "responses": {} } }, "/auth/registrationBegin": { "post": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Auth" ], "summary": "Register an account", "parameters": [ { "description": "desc", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.RegistrationBeginRequest" } } ], "responses": {} } }, "/auth/registrationComplete": { "post": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Auth" ], "summary": "Confirm with code, finish creating the account", "responses": {} } }, "/profile": { "patch": { "security": [ { "JWT": [] } ], "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Profile" ], "summary": "Update profile", "responses": {} } }, "/profile/me": { "get": { "security": [ { "JWT": [] } ], "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Profile" ], "summary": "Get own profile when authorized", "responses": {} } }, "/profile/privacy": { "get": { "security": [ { "JWT": [] } ], "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Profile" ], "summary": "Get profile privacy settings", "responses": {} }, "patch": { "security": [ { "JWT": [] } ], "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Profile" ], "summary": "Update profile privacy settings", "responses": {} } }, "/profile/{username}": { "get": { "security": [ { "JWT": [] } ], "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Profile" ], "summary": "Get someone's profile details", "parameters": [ { "type": "string", "description": "Username", "name": "username", "in": "path", "required": true } ], "responses": {} } }, "/service/health": { "get": { "description": "Used internally for checking service health", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Service" ], "summary": "Get health status", "responses": { "200": { "description": "Says whether it's healthy or not", "schema": { "$ref": "#/definitions/controllers.HealthStatus" } } } } } }, "definitions": { "controllers.HealthStatus": { "type": "object", "properties": { "healthy": { "type": "boolean" } } }, "models.LoginRequest": { "type": "object", "properties": { "password": { "type": "string" }, "totp": { "type": "string" }, "username": { "type": "string" } } }, "models.LoginResponse": { "type": "object", "properties": { "access_token": { "type": "string" }, "refresh_token": { "type": "string" } } }, "models.RegistrationBeginRequest": { "type": "object", "properties": { "email": { "type": "string" }, "password": { "description": "TODO: password checking", "type": "string" }, "username": { "type": "string" } } } }, "securityDefinitions": { "JWT": { "type": "apiKey", "name": "Authorization", "in": "header" } } }