df/bff/doc/swagger/df.swagger.json

562 lines
12 KiB
JSON

{
"openapi": "3.1.0",
"info": {
"title": "df API",
"version": "1.0",
"contact": {
"name": "itsscb",
"url": "https://github.com/itsscb/df",
"email": "dev@itsscb.de"
}
},
"tags": [
{
"name": "df"
}
],
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"paths": {
"/accounts/{id}": {
"get": {
"security": [
{
"bearerAuth": []
}
],
"summary": "Get account",
"description": "Use this API to get a new account",
"operationId": "df_GetAccount",
"responses": {
"200": {
"description": "A successful response.",
"content": {
"application/json": {
"schema": {
"$ref": "#/definitions/GetAccountResponse"
}
}
}
},
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
}
}
},
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"$ref": "#/definitions/GetAccountRequest"
}
}
],
"tags": [
"df"
]
}
},
"/accounts": {
"post": {
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"$ref": "#/definitions/CreateAccountRequest"
}
}
}
},
"summary": "Create new account",
"description": "Use this API to create a new account",
"operationId": "df_CreateAccount",
"responses": {
"200": {
"description": "A successful response.",
"content": {
"application/json": {
"schema": {
"$ref": "#/definitions/CreateAccountResponse"
}
}
}
},
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
}
}
},
"parameters": [
{
"name": "body",
"in": "body",
"schema": {
"$ref": "#/definitions/CreateAccountRequest"
}
}
],
"tags": [
"df"
]
},
"put": {
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"$ref": "#/definitions/UpdateAccountRequest"
}
}
}
},
"security": [
{
"bearerAuth": []
}
],
"summary": "Update account",
"description": "Use this API to update account",
"operationId": "df_UpdateAccount",
"responses": {
"200": {
"description": "A successful response.",
"content": {
"application/json": {
"schema": {
"$ref": "#/definitions/UpdateAccountResponse"
}
}
}
},
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
}
}
},
"parameters": [
{
"name": "body",
"in": "body",
"schema": {
"$ref": "#/definitions/UpdateAccountRequest"
}
}
],
"tags": [
"df"
]
}
},
"/accounts/privacy": {
"put": {
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"$ref": "#/definitions/UpdateAccountPrivacyRequest"
}
}
}
},
"security": [
{
"bearerAuth": []
}
],
"summary": "Update account privacy settings",
"description": "Use this API to update account privacy settings",
"operationId": "df_UpdateAccountPrivacy",
"responses": {
"200": {
"description": "A successful response.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Account"
}
}
}
},
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
}
}
},
"parameters": [
{
"name": "body",
"in": "body",
"schema": {
"$ref": "#/definitions/UpdateAccountPrivacyRequest"
}
}
],
"tags": [
"df"
]
}
},
"/login": {
"post": {
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"$ref": "#/definitions/LoginAccountRequest"
}
}
}
},
"summary": "Login account",
"description": "Use this API to login account and get access token \u0026 refresh token",
"operationId": "df_LoginAccount",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/LoginAccountResponse"
}
},
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
}
}
},
"parameters": [
{
"name": "body",
"in": "body",
"schema": {
"$ref": "#/definitions/LoginAccountRequest"
}
}
],
"tags": [
"df"
]
}
}
},
"security": {
"bearerAuth": []
},
"components": {
"securitySchemes": {
"bearerAuth": {
"type": "http",
"scheme": "bearer",
"bearerFormat": "paseto",
"in": "header"
}
},
"schemas": {
"Account": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"email": {
"type": "string"
},
"passwordhash": {
"type": "string",
"format": "password"
},
"permission_level": {
"type": "integer"
},
"privacy_accepted": {
"type": "object",
"properties": {
"Bool": {
"type": "boolean"
},
"Valid": {
"type": "boolean"
}
}
},
"privacy_accepted_date": {
"type": "object",
"properties": {
"Time": {
"type":"string",
"format": "date-time"
},
"Valid": {
"type": "boolean"
}
}
},
"phone": {
"type": "object",
"properties": {
"String": {
"type": "string"
},
"Valid": {
"type": "boolean"
}
}
},
"firstname": {
"type": "string"
},
"lastname": {
"type": "string"
},
"birthday": {
"type":"string",
"format": "date-time"
},
"street": {
"type": "string"
},
"city": {
"type": "string"
},
"zip": {
"type": "string"
},
"country": {
"type": "string"
},
"creator": {
"type": "string"
},
"created": {
"type":"string",
"format": "date-time"
},
"changer": {
"type": "string"
},
"changed": {
"type":"string",
"format": "date-time"
}
}
}
}
},
"definitions": {
"CreateAccountRequest": {
"required": [
"firstname",
"lastname",
"city",
"zip",
"street",
"country",
"email",
"password",
"birthday"
],
"type": "object",
"properties": {
"firstname": {
"type": "string"
},
"lastname": {
"type": "string"
},
"city": {
"type": "string"
},
"zip": {
"type": "string"
},
"country": {
"type": "string"
},
"street": {
"type": "string"
},
"birthday": {
"type":"string",
"format": "date-time"
},
"phone": {
"type": "string"
},
"email": {
"type": "string"
},
"password": {
"type": "string",
"format": "password"
}
}
},
"CreateAccountResponse": {
"type": "object",
"properties": {
"account": {
"$ref": "#/components/schemas/Account"
}
}
},
"GetAccountRequest": {
"required": [
"id"
],
"type": "integer",
"format": "int64"
},
"GetAccountResponse": {
"type": "object",
"properties": {
"account": {
"$ref": "#/components/schemas/Account"
}
}
},
"LoginAccountRequest": {
"required": [
"email",
"password"
],
"type": "object",
"properties": {
"email": {
"type": "string",
"format": "email"
},
"password": {
"type": "string",
"format": "password"
}
}
},
"UpdateAccountPrivacyRequest": {
"required": [
"id"
],
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"privacy_accepted": {
"type": "boolean"
}
}
},
"UpdateAccountPrivacyResponse": {
"type": "object",
"properties": {
"account": {
"$ref": "#/components/schemas/Account"
}
}
},
"UpdateAccountRequest": {
"required": [
"id"
],
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"new_password": {
"type": "string",
"format": "password"
},
"email": {
"type": "string",
"format": "email"
},
"firstname": {
"type": "string"
},
"lastname": {
"type": "string"
},
"phone": {
"type": "string"
},
"city": {
"type": "string"
},
"zip": {
"type": "string"
},
"street": {
"type": "string"
},
"country": {
"type": "string"
},
"birthday": {
"type": "string",
"format": "date-time"
}
}
},
"UpdateAccountResponse": {
"type": "object",
"properties": {
"account": {
"$ref": "#/components/schemas/Account"
}
}
},
"protobufAny": {
"type": "object",
"properties": {
"@type": {
"type": "string"
}
},
"additionalProperties": {}
},
"rpcStatus": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32"
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"$ref": "#/definitions/protobufAny"
}
}
}
}
}
}