You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1057 lines
41 KiB
1057 lines
41 KiB
{ |
|
"openapi": "3.1.0", |
|
"info": { |
|
"title": "user_status", |
|
"version": "0.0.1", |
|
"description": "User status", |
|
"license": { |
|
"name": "agpl", |
|
"identifier": "AGPL-3.0-only" |
|
} |
|
}, |
|
"components": { |
|
"securitySchemes": { |
|
"basic_auth": { |
|
"type": "http", |
|
"scheme": "basic" |
|
}, |
|
"bearer_auth": { |
|
"type": "http", |
|
"scheme": "bearer" |
|
} |
|
}, |
|
"schemas": { |
|
"Capabilities": { |
|
"type": "object", |
|
"required": [ |
|
"user_status" |
|
], |
|
"properties": { |
|
"user_status": { |
|
"type": "object", |
|
"required": [ |
|
"enabled", |
|
"restore", |
|
"supports_emoji" |
|
], |
|
"properties": { |
|
"enabled": { |
|
"type": "boolean" |
|
}, |
|
"restore": { |
|
"type": "boolean" |
|
}, |
|
"supports_emoji": { |
|
"type": "boolean" |
|
} |
|
} |
|
} |
|
} |
|
}, |
|
"ClearAt": { |
|
"type": "object", |
|
"required": [ |
|
"type", |
|
"time" |
|
], |
|
"properties": { |
|
"type": { |
|
"type": "string", |
|
"enum": [ |
|
"period", |
|
"end-of" |
|
] |
|
}, |
|
"time": { |
|
"oneOf": [ |
|
{ |
|
"type": "integer", |
|
"format": "int64" |
|
}, |
|
{ |
|
"$ref": "#/components/schemas/ClearAtTimeType" |
|
} |
|
] |
|
} |
|
} |
|
}, |
|
"ClearAtTimeType": { |
|
"type": "string", |
|
"enum": [ |
|
"day", |
|
"week" |
|
] |
|
}, |
|
"OCSMeta": { |
|
"type": "object", |
|
"required": [ |
|
"status", |
|
"statuscode" |
|
], |
|
"properties": { |
|
"status": { |
|
"type": "string" |
|
}, |
|
"statuscode": { |
|
"type": "integer" |
|
}, |
|
"message": { |
|
"type": "string" |
|
}, |
|
"totalitems": { |
|
"type": "string" |
|
}, |
|
"itemsperpage": { |
|
"type": "string" |
|
} |
|
} |
|
}, |
|
"Predefined": { |
|
"type": "object", |
|
"required": [ |
|
"id", |
|
"icon", |
|
"message", |
|
"clearAt", |
|
"visible" |
|
], |
|
"properties": { |
|
"id": { |
|
"type": "string" |
|
}, |
|
"icon": { |
|
"type": "string" |
|
}, |
|
"message": { |
|
"type": "string" |
|
}, |
|
"clearAt": { |
|
"$ref": "#/components/schemas/ClearAt", |
|
"nullable": true |
|
}, |
|
"visible": { |
|
"type": "boolean", |
|
"nullable": true |
|
} |
|
} |
|
}, |
|
"Private": { |
|
"allOf": [ |
|
{ |
|
"$ref": "#/components/schemas/Public" |
|
}, |
|
{ |
|
"type": "object", |
|
"required": [ |
|
"messageId", |
|
"messageIsPredefined", |
|
"statusIsUserDefined" |
|
], |
|
"properties": { |
|
"messageId": { |
|
"type": "string", |
|
"nullable": true |
|
}, |
|
"messageIsPredefined": { |
|
"type": "boolean" |
|
}, |
|
"statusIsUserDefined": { |
|
"type": "boolean" |
|
} |
|
} |
|
} |
|
] |
|
}, |
|
"Public": { |
|
"type": "object", |
|
"required": [ |
|
"userId", |
|
"message", |
|
"icon", |
|
"clearAt", |
|
"status" |
|
], |
|
"properties": { |
|
"userId": { |
|
"type": "string" |
|
}, |
|
"message": { |
|
"type": "string", |
|
"nullable": true |
|
}, |
|
"icon": { |
|
"type": "string", |
|
"nullable": true |
|
}, |
|
"clearAt": { |
|
"type": "integer", |
|
"format": "int64", |
|
"nullable": true |
|
}, |
|
"status": { |
|
"type": "string" |
|
} |
|
} |
|
} |
|
} |
|
}, |
|
"paths": { |
|
"/ocs/v2.php/apps/user_status/api/v1/statuses": { |
|
"get": { |
|
"operationId": "statuses-find-all", |
|
"summary": "Find statuses of users", |
|
"tags": [ |
|
"statuses" |
|
], |
|
"security": [ |
|
{ |
|
"bearer_auth": [] |
|
}, |
|
{ |
|
"basic_auth": [] |
|
} |
|
], |
|
"parameters": [ |
|
{ |
|
"name": "limit", |
|
"in": "query", |
|
"description": "Maximum number of statuses to find", |
|
"schema": { |
|
"type": "integer", |
|
"format": "int64", |
|
"nullable": true |
|
} |
|
}, |
|
{ |
|
"name": "offset", |
|
"in": "query", |
|
"description": "Offset for finding statuses", |
|
"schema": { |
|
"type": "integer", |
|
"format": "int64", |
|
"nullable": true |
|
} |
|
}, |
|
{ |
|
"name": "OCS-APIRequest", |
|
"in": "header", |
|
"description": "Required to be true for the API request to pass", |
|
"required": true, |
|
"schema": { |
|
"type": "boolean", |
|
"default": true |
|
} |
|
} |
|
], |
|
"responses": { |
|
"200": { |
|
"description": "Statuses returned", |
|
"content": { |
|
"application/json": { |
|
"schema": { |
|
"type": "object", |
|
"required": [ |
|
"ocs" |
|
], |
|
"properties": { |
|
"ocs": { |
|
"type": "object", |
|
"required": [ |
|
"meta", |
|
"data" |
|
], |
|
"properties": { |
|
"meta": { |
|
"$ref": "#/components/schemas/OCSMeta" |
|
}, |
|
"data": { |
|
"type": "array", |
|
"items": { |
|
"$ref": "#/components/schemas/Public" |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
}, |
|
"/ocs/v2.php/apps/user_status/api/v1/statuses/{userId}": { |
|
"get": { |
|
"operationId": "statuses-find", |
|
"summary": "Find the status of a user", |
|
"tags": [ |
|
"statuses" |
|
], |
|
"security": [ |
|
{ |
|
"bearer_auth": [] |
|
}, |
|
{ |
|
"basic_auth": [] |
|
} |
|
], |
|
"parameters": [ |
|
{ |
|
"name": "userId", |
|
"in": "path", |
|
"description": "ID of the user", |
|
"required": true, |
|
"schema": { |
|
"type": "string" |
|
} |
|
}, |
|
{ |
|
"name": "OCS-APIRequest", |
|
"in": "header", |
|
"description": "Required to be true for the API request to pass", |
|
"required": true, |
|
"schema": { |
|
"type": "boolean", |
|
"default": true |
|
} |
|
} |
|
], |
|
"responses": { |
|
"200": { |
|
"description": "Status returned", |
|
"content": { |
|
"application/json": { |
|
"schema": { |
|
"type": "object", |
|
"required": [ |
|
"ocs" |
|
], |
|
"properties": { |
|
"ocs": { |
|
"type": "object", |
|
"required": [ |
|
"meta", |
|
"data" |
|
], |
|
"properties": { |
|
"meta": { |
|
"$ref": "#/components/schemas/OCSMeta" |
|
}, |
|
"data": { |
|
"$ref": "#/components/schemas/Public" |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
}, |
|
"404": { |
|
"description": "The user was not found", |
|
"content": { |
|
"text/plain": { |
|
"schema": { |
|
"type": "string" |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
}, |
|
"/ocs/v2.php/apps/user_status/api/v1/user_status": { |
|
"get": { |
|
"operationId": "user_status-get-status", |
|
"summary": "Get the status of the current user", |
|
"tags": [ |
|
"user_status" |
|
], |
|
"security": [ |
|
{ |
|
"bearer_auth": [] |
|
}, |
|
{ |
|
"basic_auth": [] |
|
} |
|
], |
|
"parameters": [ |
|
{ |
|
"name": "OCS-APIRequest", |
|
"in": "header", |
|
"description": "Required to be true for the API request to pass", |
|
"required": true, |
|
"schema": { |
|
"type": "boolean", |
|
"default": true |
|
} |
|
} |
|
], |
|
"responses": { |
|
"200": { |
|
"description": "The status was found successfully", |
|
"content": { |
|
"application/json": { |
|
"schema": { |
|
"type": "object", |
|
"required": [ |
|
"ocs" |
|
], |
|
"properties": { |
|
"ocs": { |
|
"type": "object", |
|
"required": [ |
|
"meta", |
|
"data" |
|
], |
|
"properties": { |
|
"meta": { |
|
"$ref": "#/components/schemas/OCSMeta" |
|
}, |
|
"data": { |
|
"$ref": "#/components/schemas/Private" |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
}, |
|
"404": { |
|
"description": "The user was not found", |
|
"content": { |
|
"text/plain": { |
|
"schema": { |
|
"type": "string" |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
}, |
|
"/ocs/v2.php/apps/user_status/api/v1/user_status/status": { |
|
"put": { |
|
"operationId": "user_status-set-status", |
|
"summary": "Update the status type of the current user", |
|
"tags": [ |
|
"user_status" |
|
], |
|
"security": [ |
|
{ |
|
"bearer_auth": [] |
|
}, |
|
{ |
|
"basic_auth": [] |
|
} |
|
], |
|
"parameters": [ |
|
{ |
|
"name": "statusType", |
|
"in": "query", |
|
"description": "The new status type", |
|
"required": true, |
|
"schema": { |
|
"type": "string" |
|
} |
|
}, |
|
{ |
|
"name": "OCS-APIRequest", |
|
"in": "header", |
|
"description": "Required to be true for the API request to pass", |
|
"required": true, |
|
"schema": { |
|
"type": "boolean", |
|
"default": true |
|
} |
|
} |
|
], |
|
"responses": { |
|
"200": { |
|
"description": "The status was updated successfully", |
|
"content": { |
|
"application/json": { |
|
"schema": { |
|
"type": "object", |
|
"required": [ |
|
"ocs" |
|
], |
|
"properties": { |
|
"ocs": { |
|
"type": "object", |
|
"required": [ |
|
"meta", |
|
"data" |
|
], |
|
"properties": { |
|
"meta": { |
|
"$ref": "#/components/schemas/OCSMeta" |
|
}, |
|
"data": { |
|
"$ref": "#/components/schemas/Private" |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
}, |
|
"400": { |
|
"description": "The status type is invalid", |
|
"content": { |
|
"text/plain": { |
|
"schema": { |
|
"type": "string" |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
}, |
|
"/ocs/v2.php/apps/user_status/api/v1/user_status/message/predefined": { |
|
"put": { |
|
"operationId": "user_status-set-predefined-message", |
|
"summary": "Set the message to a predefined message for the current user", |
|
"tags": [ |
|
"user_status" |
|
], |
|
"security": [ |
|
{ |
|
"bearer_auth": [] |
|
}, |
|
{ |
|
"basic_auth": [] |
|
} |
|
], |
|
"parameters": [ |
|
{ |
|
"name": "messageId", |
|
"in": "query", |
|
"description": "ID of the predefined message", |
|
"required": true, |
|
"schema": { |
|
"type": "string" |
|
} |
|
}, |
|
{ |
|
"name": "clearAt", |
|
"in": "query", |
|
"description": "When the message should be cleared", |
|
"schema": { |
|
"type": "integer", |
|
"format": "int64", |
|
"nullable": true |
|
} |
|
}, |
|
{ |
|
"name": "OCS-APIRequest", |
|
"in": "header", |
|
"description": "Required to be true for the API request to pass", |
|
"required": true, |
|
"schema": { |
|
"type": "boolean", |
|
"default": true |
|
} |
|
} |
|
], |
|
"responses": { |
|
"200": { |
|
"description": "The message was updated successfully", |
|
"content": { |
|
"application/json": { |
|
"schema": { |
|
"type": "object", |
|
"required": [ |
|
"ocs" |
|
], |
|
"properties": { |
|
"ocs": { |
|
"type": "object", |
|
"required": [ |
|
"meta", |
|
"data" |
|
], |
|
"properties": { |
|
"meta": { |
|
"$ref": "#/components/schemas/OCSMeta" |
|
}, |
|
"data": { |
|
"$ref": "#/components/schemas/Private" |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
}, |
|
"400": { |
|
"description": "The clearAt or message-id is invalid", |
|
"content": { |
|
"text/plain": { |
|
"schema": { |
|
"type": "string" |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
}, |
|
"/ocs/v2.php/apps/user_status/api/v1/user_status/message/custom": { |
|
"put": { |
|
"operationId": "user_status-set-custom-message", |
|
"summary": "Set the message to a custom message for the current user", |
|
"tags": [ |
|
"user_status" |
|
], |
|
"security": [ |
|
{ |
|
"bearer_auth": [] |
|
}, |
|
{ |
|
"basic_auth": [] |
|
} |
|
], |
|
"parameters": [ |
|
{ |
|
"name": "statusIcon", |
|
"in": "query", |
|
"description": "Icon of the status", |
|
"schema": { |
|
"type": "string", |
|
"nullable": true |
|
} |
|
}, |
|
{ |
|
"name": "message", |
|
"in": "query", |
|
"description": "Message of the status", |
|
"schema": { |
|
"type": "string", |
|
"nullable": true |
|
} |
|
}, |
|
{ |
|
"name": "clearAt", |
|
"in": "query", |
|
"description": "When the message should be cleared", |
|
"schema": { |
|
"type": "integer", |
|
"format": "int64", |
|
"nullable": true |
|
} |
|
}, |
|
{ |
|
"name": "OCS-APIRequest", |
|
"in": "header", |
|
"description": "Required to be true for the API request to pass", |
|
"required": true, |
|
"schema": { |
|
"type": "boolean", |
|
"default": true |
|
} |
|
} |
|
], |
|
"responses": { |
|
"200": { |
|
"description": "The message was updated successfully", |
|
"content": { |
|
"application/json": { |
|
"schema": { |
|
"type": "object", |
|
"required": [ |
|
"ocs" |
|
], |
|
"properties": { |
|
"ocs": { |
|
"type": "object", |
|
"required": [ |
|
"meta", |
|
"data" |
|
], |
|
"properties": { |
|
"meta": { |
|
"$ref": "#/components/schemas/OCSMeta" |
|
}, |
|
"data": { |
|
"$ref": "#/components/schemas/Private" |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
}, |
|
"400": { |
|
"description": "The clearAt or icon is invalid or the message is too long", |
|
"content": { |
|
"text/plain": { |
|
"schema": { |
|
"type": "string" |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
}, |
|
"/ocs/v2.php/apps/user_status/api/v1/user_status/message": { |
|
"delete": { |
|
"operationId": "user_status-clear-message", |
|
"summary": "Clear the message of the current user", |
|
"tags": [ |
|
"user_status" |
|
], |
|
"security": [ |
|
{ |
|
"bearer_auth": [] |
|
}, |
|
{ |
|
"basic_auth": [] |
|
} |
|
], |
|
"parameters": [ |
|
{ |
|
"name": "OCS-APIRequest", |
|
"in": "header", |
|
"description": "Required to be true for the API request to pass", |
|
"required": true, |
|
"schema": { |
|
"type": "boolean", |
|
"default": true |
|
} |
|
} |
|
], |
|
"responses": { |
|
"200": { |
|
"description": "Message cleared successfully", |
|
"content": { |
|
"application/json": { |
|
"schema": { |
|
"type": "object", |
|
"required": [ |
|
"ocs" |
|
], |
|
"properties": { |
|
"ocs": { |
|
"type": "object", |
|
"required": [ |
|
"meta", |
|
"data" |
|
], |
|
"properties": { |
|
"meta": { |
|
"$ref": "#/components/schemas/OCSMeta" |
|
}, |
|
"data": {} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
}, |
|
"/ocs/v2.php/apps/user_status/api/v1/user_status/revert/{messageId}": { |
|
"delete": { |
|
"operationId": "user_status-revert-status", |
|
"summary": "Revert the status to the previous status", |
|
"tags": [ |
|
"user_status" |
|
], |
|
"security": [ |
|
{ |
|
"bearer_auth": [] |
|
}, |
|
{ |
|
"basic_auth": [] |
|
} |
|
], |
|
"parameters": [ |
|
{ |
|
"name": "messageId", |
|
"in": "path", |
|
"description": "ID of the message to delete", |
|
"required": true, |
|
"schema": { |
|
"type": "string" |
|
} |
|
}, |
|
{ |
|
"name": "OCS-APIRequest", |
|
"in": "header", |
|
"description": "Required to be true for the API request to pass", |
|
"required": true, |
|
"schema": { |
|
"type": "boolean", |
|
"default": true |
|
} |
|
} |
|
], |
|
"responses": { |
|
"200": { |
|
"description": "Status reverted", |
|
"content": { |
|
"application/json": { |
|
"schema": { |
|
"type": "object", |
|
"required": [ |
|
"ocs" |
|
], |
|
"properties": { |
|
"ocs": { |
|
"type": "object", |
|
"required": [ |
|
"meta", |
|
"data" |
|
], |
|
"properties": { |
|
"meta": { |
|
"$ref": "#/components/schemas/OCSMeta" |
|
}, |
|
"data": { |
|
"oneOf": [ |
|
{ |
|
"$ref": "#/components/schemas/Private" |
|
}, |
|
{} |
|
] |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
}, |
|
"/ocs/v2.php/apps/user_status/api/v1/predefined_statuses": { |
|
"get": { |
|
"operationId": "predefined_status-find-all", |
|
"summary": "Get all predefined messages", |
|
"tags": [ |
|
"predefined_status" |
|
], |
|
"security": [ |
|
{ |
|
"bearer_auth": [] |
|
}, |
|
{ |
|
"basic_auth": [] |
|
} |
|
], |
|
"parameters": [ |
|
{ |
|
"name": "OCS-APIRequest", |
|
"in": "header", |
|
"description": "Required to be true for the API request to pass", |
|
"required": true, |
|
"schema": { |
|
"type": "boolean", |
|
"default": true |
|
} |
|
} |
|
], |
|
"responses": { |
|
"200": { |
|
"description": "Predefined statuses returned", |
|
"content": { |
|
"application/json": { |
|
"schema": { |
|
"type": "object", |
|
"required": [ |
|
"ocs" |
|
], |
|
"properties": { |
|
"ocs": { |
|
"type": "object", |
|
"required": [ |
|
"meta", |
|
"data" |
|
], |
|
"properties": { |
|
"meta": { |
|
"$ref": "#/components/schemas/OCSMeta" |
|
}, |
|
"data": { |
|
"type": "array", |
|
"items": { |
|
"$ref": "#/components/schemas/Predefined" |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
}, |
|
"/ocs/v2.php/apps/user_status/api/v1/heartbeat": { |
|
"put": { |
|
"operationId": "heartbeat-heartbeat", |
|
"summary": "Keep the status alive", |
|
"tags": [ |
|
"heartbeat" |
|
], |
|
"security": [ |
|
{ |
|
"bearer_auth": [] |
|
}, |
|
{ |
|
"basic_auth": [] |
|
} |
|
], |
|
"parameters": [ |
|
{ |
|
"name": "status", |
|
"in": "query", |
|
"description": "Only online, away", |
|
"required": true, |
|
"schema": { |
|
"type": "string" |
|
} |
|
}, |
|
{ |
|
"name": "OCS-APIRequest", |
|
"in": "header", |
|
"description": "Required to be true for the API request to pass", |
|
"required": true, |
|
"schema": { |
|
"type": "boolean", |
|
"default": true |
|
} |
|
} |
|
], |
|
"responses": { |
|
"200": { |
|
"description": "Status successfully updated", |
|
"content": { |
|
"application/json": { |
|
"schema": { |
|
"type": "object", |
|
"required": [ |
|
"ocs" |
|
], |
|
"properties": { |
|
"ocs": { |
|
"type": "object", |
|
"required": [ |
|
"meta", |
|
"data" |
|
], |
|
"properties": { |
|
"meta": { |
|
"$ref": "#/components/schemas/OCSMeta" |
|
}, |
|
"data": { |
|
"$ref": "#/components/schemas/Private" |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
}, |
|
"400": { |
|
"description": "Invalid status to update", |
|
"content": { |
|
"application/json": { |
|
"schema": { |
|
"type": "object", |
|
"required": [ |
|
"ocs" |
|
], |
|
"properties": { |
|
"ocs": { |
|
"type": "object", |
|
"required": [ |
|
"meta", |
|
"data" |
|
], |
|
"properties": { |
|
"meta": { |
|
"$ref": "#/components/schemas/OCSMeta" |
|
}, |
|
"data": {} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
}, |
|
"500": { |
|
"description": "", |
|
"content": { |
|
"application/json": { |
|
"schema": { |
|
"type": "object", |
|
"required": [ |
|
"ocs" |
|
], |
|
"properties": { |
|
"ocs": { |
|
"type": "object", |
|
"required": [ |
|
"meta", |
|
"data" |
|
], |
|
"properties": { |
|
"meta": { |
|
"$ref": "#/components/schemas/OCSMeta" |
|
}, |
|
"data": {} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
}, |
|
"204": { |
|
"description": "User has no status to keep alive", |
|
"content": { |
|
"application/json": { |
|
"schema": { |
|
"type": "object", |
|
"required": [ |
|
"ocs" |
|
], |
|
"properties": { |
|
"ocs": { |
|
"type": "object", |
|
"required": [ |
|
"meta", |
|
"data" |
|
], |
|
"properties": { |
|
"meta": { |
|
"$ref": "#/components/schemas/OCSMeta" |
|
}, |
|
"data": {} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
}, |
|
"tags": [] |
|
} |