562 lines
12 KiB
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"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|