feat(files): Update openapi

Signed-off-by: Christopher Ng <chrng8@gmail.com>
pull/47122/head
Christopher Ng 2024-08-07 20:52:29 +07:00
parent e9083db768
commit 36cf891b7f
3 changed files with 93 additions and 28 deletions

@ -261,10 +261,15 @@ class ApiController extends Controller {
/**
* Returns the folder tree of the user
*
* @return JSONResponse<Http::STATUS_OK, FilesFolderTree, array{}>|JSONResponse<Http::STATUS_UNAUTHORIZED, array{message: string}, array{}>
* @param string $path The path relative to the user folder
* @param int $depth The depth of the tree
*
* @return JSONResponse<Http::STATUS_OK, FilesFolderTree, array{}>|JSONResponse<Http::STATUS_UNAUTHORIZED|Http::STATUS_BAD_REQUEST|Http::STATUS_NOT_FOUND, array{message: string}, array{}>
*
* 200: Folder tree returned successfully
* 400: Invalid folder path
* 401: Unauthorized
* 404: Folder not found
*/
#[NoAdminRequired]
#[ApiRoute(verb: 'GET', url: '/api/v1/folder-tree')]

@ -39,13 +39,12 @@ namespace OCA\Files;
* type: string,
* }
*
* @psalm-type FilesFolderTreeNode = array{
* @psalm-type FilesFolderTree = list<array{
* id: int,
* basename: string,
* displayName?: string,
* children?: array<string, array{}>,
* }
*
* @psalm-type FilesFolderTree = array<string, FilesFolderTreeNode>
* children: list<array{}>,
* }>
*
*/
class ResponseDefinitions {

@ -100,28 +100,30 @@
}
},
"FolderTree": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/FolderTreeNode"
}
},
"FolderTreeNode": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"displayName": {
"type": "string"
},
"children": {
"type": "object",
"additionalProperties": {
"type": "object"
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"basename",
"children"
],
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"basename": {
"type": "string"
},
"displayName": {
"type": "string"
},
"children": {
"type": "array",
"items": {
"type": "object"
}
}
}
}
@ -1971,6 +1973,29 @@
"basic_auth": []
}
],
"requestBody": {
"required": false,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"path": {
"type": "string",
"default": "/",
"description": "The path relative to the user folder"
},
"depth": {
"type": "integer",
"format": "int64",
"default": 1,
"description": "The depth of the tree"
}
}
}
}
}
},
"parameters": [
{
"name": "OCS-APIRequest",
@ -2011,6 +2036,42 @@
}
}
}
},
"400": {
"description": "Invalid folder path",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"message"
],
"properties": {
"message": {
"type": "string"
}
}
}
}
}
},
"404": {
"description": "Folder not found",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"message"
],
"properties": {
"message": {
"type": "string"
}
}
}
}
}
}
}
}