File browser on admin page
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import { Request, Response, NextFunction, Router } from 'express'
|
||||
import { deleteAllTables, deleteExerciseProgressTables, prepopulateDatabase, prepopulateExerciseDatabase } from '../scripts/databaseHelper'
|
||||
import fs from "fs"
|
||||
|
||||
export const api = Router()
|
||||
|
||||
@@ -24,4 +25,29 @@ api.get("/resetExerciseProgress", async (req: Request, res: Response, next: Next
|
||||
await prepopulateExerciseDatabase()
|
||||
|
||||
res.status(200).send()
|
||||
})
|
||||
|
||||
/**
|
||||
* Get all uploaded file names
|
||||
*/
|
||||
api.get("/files", async (req: Request, res: Response) => {
|
||||
let dirNames = fs.readdirSync("./backend/images")
|
||||
let result = []
|
||||
|
||||
dirNames.forEach(dir => {
|
||||
let fileNames = fs.readdirSync("./backend/images/" + dir)
|
||||
|
||||
result.push({
|
||||
folder: dir,
|
||||
files: fileNames.map(file => {
|
||||
return {
|
||||
name: file,
|
||||
size: fs.statSync("./backend/images/" + dir + "/" + file).size,
|
||||
url: "http://localhost:3000/static/" + dir + "/" + file
|
||||
}
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
res.status(200).json(result)
|
||||
})
|
||||
Reference in New Issue
Block a user