diff --git a/api/src/app.ts b/api/src/app.ts index 6879eff..5225e56 100644 --- a/api/src/app.ts +++ b/api/src/app.ts @@ -8,6 +8,8 @@ import webRouter from './routes/web' import apiRouter from './routes/api' import { connectDB, getWebBuildFolderPath } from './utils' +import { FolderController } from './controllers' + dotenv.config() const app = express() @@ -30,4 +32,8 @@ app.use(express.json({ limit: '50mb' })) app.use(express.static(getWebBuildFolderPath())) +const folderController = new FolderController() + +folderController.addRootFolder() + export default connectDB().then(() => app) diff --git a/api/src/controllers/folder.ts b/api/src/controllers/folder.ts new file mode 100644 index 0000000..0fb637d --- /dev/null +++ b/api/src/controllers/folder.ts @@ -0,0 +1,21 @@ +import Folder, { MemberType } from '../model/Folder' + +export class FolderController { + public async addRootFolder() { + await addRootFolder() + } +} + +const addRootFolder = async () => { + let folder = await Folder.findOne({ name: '/' }) + + if (folder) return + + folder = new Folder({ + name: '/', + parentFolderUri: '/', + type: MemberType.Folder + }) + + return await folder.save() +} diff --git a/api/src/controllers/index.ts b/api/src/controllers/index.ts index 805cc3c..51f486c 100644 --- a/api/src/controllers/index.ts +++ b/api/src/controllers/index.ts @@ -5,3 +5,4 @@ export * from './group' export * from './stp' export * from './user' export * from './session' +export * from './folder' diff --git a/api/src/model/Folder.ts b/api/src/model/Folder.ts new file mode 100644 index 0000000..550571c --- /dev/null +++ b/api/src/model/Folder.ts @@ -0,0 +1,4 @@ +export enum MemberType { + Folder = 'Folder', + File = 'File' +}