58 lines
1.3 KiB
JavaScript
58 lines
1.3 KiB
JavaScript
const router = require("express").Router();
|
||
const response = require("./response-wrapper");
|
||
// const config = require('../../config-handler');
|
||
|
||
// Парсинг куки
|
||
//router.use(require('cookie-parser')());
|
||
|
||
// Загрузка музыки при помощи спец. метода
|
||
function muzicLoad(req, res) {
|
||
res.setHeader("Content-Type", "audio/mpeg");
|
||
global.database.muzic.get(
|
||
(err, data) => {
|
||
data = data[0]?.data;
|
||
if (err) {
|
||
res.send(Buffer.from([]));
|
||
} else {
|
||
res.send(!data ? Buffer.from([]) : data);
|
||
}
|
||
},
|
||
{ where: { id: !Number.isInteger(+req.query.id) ? 0 : +req.query.id } },
|
||
);
|
||
}
|
||
|
||
// Подгрузка с файла
|
||
router.use("/:method_name", async (req, res, next, ...etc) => {
|
||
if (req.params.method_name === "muzic") {
|
||
muzicLoad(req, res);
|
||
return;
|
||
}
|
||
|
||
try {
|
||
const methodFunct = require(`./methods/${req.params.method_name}`);
|
||
response(methodFunct, req, res);
|
||
} catch (e) {
|
||
if (e.message.includes("Cannot find module")) {
|
||
const ApiError = require("./errorClass");
|
||
res.status(400).sendModed(
|
||
await response(
|
||
(req, res) => {
|
||
throw new ApiError("METHOD_NOT_FOUNDED");
|
||
},
|
||
req,
|
||
res,
|
||
),
|
||
);
|
||
} else {
|
||
response(
|
||
async () => {
|
||
throw e;
|
||
},
|
||
req,
|
||
res,
|
||
);
|
||
}
|
||
}
|
||
});
|
||
|
||
module.exports = router; |