This commit is contained in:
seb
2026-10-10 02:08:10 +02:00
parent d4e2b05cb0
commit 7f8661be3e
43 changed files with 3312 additions and 2339 deletions

View File

@@ -5,6 +5,8 @@ import { emit } from '../sse.js';
import { prepareVfs, resolveVfsRoot, isReadOnlyDatabasePath, getMimeType } from '../../tools/vfs.js';
import sharp from 'sharp';
// #region Helpers
// Thumbnail box. The image is fitted inside this box preserving aspect ratio; it is never
// stretched, so a 2000x100 image becomes 250x13 and not 250x250.
const THUMB_BOX = 250;
@@ -373,6 +375,8 @@ const vfsUpload = multer({
limits: { fileSize: 100 * 1024 * 1024 },
});
// #endregion
export function register(app, basePath = '') {
/**
@@ -420,6 +424,8 @@ export function register(app, basePath = '') {
* schema:
* $ref: '#/components/schemas/Error'
*/
// #region GET /vfs
app.get(`${basePath}/vfs`, async (req, res) => {
const selected = requireSelectedCompany(req);
if (selected.error) {
@@ -468,6 +474,8 @@ export function register(app, basePath = '') {
}
});
// #endregion
/**
* @openapi
* /vfs/upload:
@@ -547,6 +555,8 @@ export function register(app, basePath = '') {
* schema:
* $ref: '#/components/schemas/Error'
*/
// #region POST /vfs/upload
app.post(`${basePath}/vfs/upload`, vfsUpload.array('files'), async (req, res) => {
const selected = requireSelectedCompany(req);
if (selected.error) {
@@ -596,6 +606,8 @@ export function register(app, basePath = '') {
}
});
// #endregion
/**
* @openapi
* /vfs/mkdir:
@@ -653,6 +665,8 @@ export function register(app, basePath = '') {
* schema:
* $ref: '#/components/schemas/Error'
*/
// #region POST /vfs/mkdir
app.post(`${basePath}/vfs/mkdir`, async (req, res) => {
const selected = requireSelectedCompany(req);
if (selected.error) {
@@ -684,6 +698,8 @@ export function register(app, basePath = '') {
}
});
// #endregion
/**
* @openapi
* /vfs/rename:
@@ -751,6 +767,8 @@ export function register(app, basePath = '') {
* schema:
* $ref: '#/components/schemas/Error'
*/
// #region POST /vfs/rename
app.post(`${basePath}/vfs/rename`, async (req, res) => {
const selected = requireSelectedCompany(req);
if (selected.error) {
@@ -800,6 +818,8 @@ export function register(app, basePath = '') {
}
});
// #endregion
/**
* @openapi
* /vfs/{*path}:
@@ -895,6 +915,8 @@ export function register(app, basePath = '') {
* schema:
* $ref: '#/components/schemas/Error'
*/
// #region PUT /vfs/*path
app.put(`${basePath}/vfs/*path`, async (req, res) => {
const selected = requireSelectedCompany(req);
if (selected.error) {
@@ -951,6 +973,8 @@ export function register(app, basePath = '') {
}
});
// #endregion
/**
* @openapi
* /vfs/{*path}:
@@ -1004,6 +1028,8 @@ export function register(app, basePath = '') {
* schema:
* $ref: '#/components/schemas/Error'
*/
// #region DELETE /vfs/*path
app.delete(`${basePath}/vfs/*path`, async (req, res) => {
const selected = requireSelectedCompany(req);
if (selected.error) {
@@ -1043,6 +1069,8 @@ export function register(app, basePath = '') {
}
});
// #endregion
/**
* @openapi
* /vfs/{*path}:
@@ -1168,6 +1196,8 @@ export function register(app, basePath = '') {
* schema:
* $ref: '#/components/schemas/Error'
*/
// #region GET /vfs/*path
app.get(`${basePath}/vfs/*path`, async (req, res) => {
const selected = requireSelectedCompany(req);
if (selected.error) {
@@ -1252,4 +1282,6 @@ export function register(app, basePath = '') {
res.status(status).json({ error: error.message });
}
});
// #endregion
}