From 82ee1ef7f7a798890045a7911be73b1f23e17a11 Mon Sep 17 00:00:00 2001 From: Methapon2001 <61303214+Methapon2001@users.noreply.github.com> Date: Mon, 20 Nov 2023 11:50:18 +0700 Subject: [PATCH] fix: missing metadata field --- .../server/src/controllers/fileController.ts | 22 ++++- Prototype/server/src/routes.ts | 28 +++++++ Prototype/server/src/swagger.json | 80 +++++++++++++++++++ 3 files changed, 128 insertions(+), 2 deletions(-) diff --git a/Prototype/server/src/controllers/fileController.ts b/Prototype/server/src/controllers/fileController.ts index 7a7107c..7999145 100644 --- a/Prototype/server/src/controllers/fileController.ts +++ b/Prototype/server/src/controllers/fileController.ts @@ -130,9 +130,23 @@ export class FileController extends Controller { }, }); + // Use flatMap for return type only. Filter does not change type after filter out undefined or null const records = search.hits.hits .map((v) => { - const { pathname, title, description, keyword, category, attachment } = v._source!; + if (!v._source) return; + + const { + pathname, + title, + description, + keyword, + category, + attachment, + createdAt, + createdBy, + updatedAt, + updatedBy, + } = v._source; return { pathname, @@ -141,9 +155,13 @@ export class FileController extends Controller { keyword, category, type: attachment["content_type"], + createdAt, + createdBy, + updatedAt, + updatedBy, }; }) - .filter((v) => !!v); + .flatMap((v) => (v ? [v] : [])); return records; } diff --git a/Prototype/server/src/routes.ts b/Prototype/server/src/routes.ts index 3fa6d7a..14d6579 100644 --- a/Prototype/server/src/routes.ts +++ b/Prototype/server/src/routes.ts @@ -317,6 +317,34 @@ export function RegisterRoutes(app: Router) { } }); // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa + app.get('/cabinet/:cabinetName/drawer/:drawerName/folder/:folderName/file/:fileName', + ...(fetchMiddlewares(FileController)), + ...(fetchMiddlewares(FileController.prototype.deleteFile)), + + function FileController_deleteFile(request: any, response: any, next: any) { + const args = { + cabinetName: {"in":"path","name":"cabinetName","required":true,"dataType":"string"}, + drawerName: {"in":"path","name":"drawerName","required":true,"dataType":"string"}, + folderName: {"in":"path","name":"folderName","required":true,"dataType":"string"}, + fileName: {"in":"path","name":"fileName","required":true,"dataType":"string"}, + }; + + // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa + + let validatedArgs: any[] = []; + try { + validatedArgs = getValidatedArgs(args, request, response); + + const controller = new FileController(); + + + const promise = controller.deleteFile.apply(controller, validatedArgs as any); + promiseHandler(controller, promise, response, 200, next); + } catch (err) { + return next(err); + } + }); + // WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa app.get('/cabinet/:cabinetName/drawer/:drawerName/folder', ...(fetchMiddlewares(FolderController)), ...(fetchMiddlewares(FolderController.prototype.listFolder)), diff --git a/Prototype/server/src/swagger.json b/Prototype/server/src/swagger.json index e0bb1ae..fa19899 100644 --- a/Prototype/server/src/swagger.json +++ b/Prototype/server/src/swagger.json @@ -463,6 +463,34 @@ "schema": { "items": { "properties": { + "updatedBy": { + "type": "string" + }, + "updatedAt": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, + "createdBy": { + "type": "string" + }, + "createdAt": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "string", + "format": "date-time" + } + ] + }, "type": { "type": "string" }, @@ -489,6 +517,10 @@ } }, "required": [ + "updatedBy", + "updatedAt", + "createdBy", + "createdAt", "type", "category", "keyword", @@ -536,6 +568,54 @@ ] } }, + "/cabinet/{cabinetName}/drawer/{drawerName}/folder/{folderName}/file/{fileName}": { + "get": { + "operationId": "DeleteFile", + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "File" + ], + "security": [], + "parameters": [ + { + "in": "path", + "name": "cabinetName", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "drawerName", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "folderName", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "fileName", + "required": true, + "schema": { + "type": "string" + } + } + ] + } + }, "/cabinet/{cabinetName}/drawer/{drawerName}/folder": { "get": { "operationId": "ListFolder",