53 lines
1.4 KiB
TypeScript
53 lines
1.4 KiB
TypeScript
import { Request, Response, NextFunction, Router } from 'express'
|
|
import { deleteAllTables, deleteExerciseProgressTables, prepopulateDatabase, prepopulateExerciseDatabase } from '../scripts/databaseHelper'
|
|
import fs from "fs"
|
|
|
|
export const api = Router()
|
|
|
|
api.get("/", (req: Request, res: Response, next: NextFunction) => {
|
|
res.status(200).send()
|
|
})
|
|
|
|
api.get("/resetdatabase", async (req: Request, res: Response, next: NextFunction) => {
|
|
// Step 1: Delete all data tables
|
|
deleteAllTables()
|
|
|
|
// Step 2: Prepopulate with default values
|
|
await prepopulateDatabase()
|
|
|
|
// Step 3: Send status back
|
|
res.status(200).send()
|
|
})
|
|
|
|
api.get("/resetExerciseProgress", async (req: Request, res: Response, next: NextFunction) => {
|
|
deleteExerciseProgressTables()
|
|
|
|
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)
|
|
}) |