From 15a6126febe1332810868d013344d5338d04b0ab Mon Sep 17 00:00:00 2001 From: SrGooglo Date: Mon, 6 Mar 2023 02:15:53 +0000 Subject: [PATCH] added `/objects` --- .../src/controllers/FilesController/index.js | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/packages/server/src/controllers/FilesController/index.js b/packages/server/src/controllers/FilesController/index.js index 3659d972..eea69323 100755 --- a/packages/server/src/controllers/FilesController/index.js +++ b/packages/server/src/controllers/FilesController/index.js @@ -4,8 +4,48 @@ import uploadBodyFiles from "./services/uploadBodyFiles" export default class FilesController extends Controller { static refName = "FilesController" + static useRoute = "/files" httpEndpoints = { + get: { + "/objects": { + middlewares: ["withAuthentication"], + fn: async (req, res) => { + const user_id = req.user.id + + let totalSize = 0 + + const objectsPath = `${user_id}/` + + const objects = await new Promise((resolve, reject) => { + const objects = [] + + const objectsStream = global.storage.listObjects(global.storage.defaultBucket, objectsPath, true) + + objectsStream.on("data", (obj) => { + objects.push(obj) + }) + + objectsStream.on("error", (err) => { + return reject(err) + }) + + objectsStream.on("end", () => { + return resolve(objects) + }) + }) + + for await (const object of objects) { + totalSize += object.size + } + + return res.json({ + totalSize, + objects, + }) + } + } + }, post: { "/upload": { middlewares: ["withAuthentication"],