114 lines
4.8 KiB
JavaScript
114 lines
4.8 KiB
JavaScript
const SessionService = require("../../services/SessionService");
|
|
const app = require("express").Router();
|
|
const db = require("../../models");
|
|
const role = 1;
|
|
|
|
app.get("/admin/letters/main", SessionService.verifySessionMiddleware(role, "admin"), async function (req, res, next) {
|
|
const { order: orderId } = req.query;
|
|
// const orderId = 2;
|
|
const order = await db.order.getByPK(orderId);
|
|
const firstName = JSON.parse(order.customer).first_name;
|
|
res.render("admin/Letters/Main_Letter", {
|
|
firstName,
|
|
get_page_name: () => "Letter",
|
|
_base_url: "/admin/letters/main",
|
|
});
|
|
});
|
|
|
|
app.get("/admin/letters/profile", SessionService.verifySessionMiddleware(role, "admin"), async function (req, res, next) {
|
|
const { order: orderId } = req.query;
|
|
|
|
const order = await db.order.getByPK(orderId);
|
|
const firstName = order.customer ? JSON.parse(order.customer).first_name ?? null : null;
|
|
const profileCharcteristics = order.profile ? JSON.parse(order.profile) : [];
|
|
res.render("admin/Letters/Profile_Letter", { firstName, profileCharcteristics, get_page_name: () => "Letter", _base_url: "/admin/letters/profile" });
|
|
});
|
|
|
|
app.get("/admin/letters/formula", SessionService.verifySessionMiddleware(role, "admin"), async function (req, res, next) {
|
|
const { order: orderId } = req.query;
|
|
|
|
const order = await db.order.getByPK(orderId);
|
|
let activesNames = order.actives ? JSON.parse(order.actives) : [];
|
|
if (activesNames && activesNames.length) activesNames = activesNames.filter((active) => active !== "Base");
|
|
const { rows: actives, count } = await db.active.findAndCountAll({
|
|
where: { name: { [db.Sequelize.Op.in]: activesNames } },
|
|
});
|
|
|
|
res.render("admin/Letters/Formula_Letter", { actives, count, get_page_name: () => "Letter", _base_url: "/admin/letters/formula" });
|
|
});
|
|
|
|
app.get("/admin/letters/instructions", SessionService.verifySessionMiddleware(role, "admin"), async function (req, res, next) {
|
|
const { order: orderId } = req.query;
|
|
|
|
const order = await db.order.getByPK(orderId);
|
|
|
|
res.render("admin/Letters/Instructions_Letter", { get_page_name: () => "Letter", _base_url: "/admin/letters/instructions" });
|
|
});
|
|
|
|
app.get("/admin/letters/all", SessionService.verifySessionMiddleware(role, "admin"), async function (req, res, next) {
|
|
const { order: orderId } = req.query;
|
|
|
|
const order = await db.order.getByPK(orderId);
|
|
|
|
const firstName = JSON.parse(order.customer).first_name;
|
|
const profileCharcteristics = order.profile ? JSON.parse(order.profile) : [];
|
|
|
|
let activesNames = order.actives ? JSON.parse(order.actives) : [];
|
|
if (activesNames && activesNames.length) activesNames = activesNames.filter((active) => active !== "Base");
|
|
const { rows: actives, count } = await db.active.findAndCountAll({
|
|
where: { name: { [db.Sequelize.Op.in]: activesNames } },
|
|
});
|
|
|
|
res.render("admin/Letters/All", { firstName, profileCharcteristics, actives, count, get_page_name: () => "Letter", _base_url: "/admin/letters/all" });
|
|
});
|
|
|
|
app.get("/admin/dashboard", SessionService.verifySessionMiddleware(role, "admin"), async function (req, res, next) {
|
|
const config = await db.configuration.findOne({ where: { id: 1 }, include: [{ model: db.image, as: "image" }] });
|
|
res.render("admin/Dashboard", {
|
|
config,
|
|
get_page_name: () => "Dashboard",
|
|
_base_url: "/admin/dashboard",
|
|
});
|
|
});
|
|
|
|
app.post("/questions/order/save", SessionService.verifySessionMiddleware(role, "admin"), async function (req, res, next) {
|
|
try {
|
|
const questions = req.body;
|
|
|
|
for (const question of questions) {
|
|
if (question.id && question.order) {
|
|
await db.question.edit({ order: question.order }, question.id);
|
|
}
|
|
}
|
|
return res.json({ success: true, message: "Successfully updated orders" });
|
|
} catch (error) {
|
|
console.log(error);
|
|
return res.status(500).json({ success: false, message: "Failed to update orders" });
|
|
}
|
|
});
|
|
app.post("/main-image/update", SessionService.verifySessionMiddleware(role, "admin"), async function (req, res, next) {
|
|
try {
|
|
const { image_url } = req.body;
|
|
await db.configuration.edit({ image_id: image_url }, 1);
|
|
return res.json({ success: true, message: "Successfully updated image" });
|
|
} catch (error) {
|
|
console.log(error);
|
|
return res.status(500).json({ success: false, message: "Failed to update image" });
|
|
}
|
|
});
|
|
|
|
app.get("/configurations", async function (req, res, next) {
|
|
try {
|
|
const config = await db.configuration.findOne({ where: { id: 1 }, include: [{ model: db.image, as: "image" }] });
|
|
if (!config) {
|
|
return res.status(404).json({ success: false, message: "No configurations found" });
|
|
}
|
|
return res.json({ success: true, payload: config });
|
|
} catch (error) {
|
|
console.log(error);
|
|
return res.status(500).json({ success: false, message: "Failed to fetch configurations" });
|
|
}
|
|
});
|
|
|
|
module.exports = app;
|