40 lines
1.3 KiB
JavaScript
40 lines
1.3 KiB
JavaScript
const fs = require("node:fs")
|
|
const path = require("node:path")
|
|
const utils = require("../../../../modules/utils")
|
|
const express = require("express")
|
|
const router = express()
|
|
|
|
router.use("/download", (req, res) => {
|
|
const gameFiles = path.join(__dirname, "..", "..", "..", "..", "data", "gameFiles")
|
|
const gameFile = path.join(gameFiles, req.path)
|
|
if (fs.existsSync(gameFile)) {
|
|
try {
|
|
res.download(gameFile)
|
|
} catch (error) {
|
|
console.error(error)
|
|
utils.handleError(req, res, 500, "Erreur interne du serveur.")
|
|
}
|
|
} else {
|
|
utils.handleError(req, res, 404, "Fichier introuvable.")
|
|
}
|
|
})
|
|
|
|
router.get("", (req, res) => {
|
|
const gameFiles = path.join(__dirname, "..", "..", "..", "..", "data", "gameFiles")
|
|
if (fs.existsSync(gameFiles)) {
|
|
try {
|
|
res.status(200).json(fs.readdirSync(gameFiles, { recursive: true }).filter(value => {
|
|
if (!fs.statSync(path.join(gameFiles, value)).isDirectory()) {
|
|
return value
|
|
}
|
|
}))
|
|
} catch (error) {
|
|
console.error(error)
|
|
utils.handleError(req, res, 500, "Erreur interne du serveur.")
|
|
}
|
|
} else {
|
|
utils.handleError(req, res, 404, "Fichier introuvable.")
|
|
}
|
|
})
|
|
|
|
module.exports = router |