fix: code review fixes

This commit is contained in:
Ayobami
2025-08-12 17:09:53 +01:00
parent 1e7808fb4a
commit f361d31ef8
7 changed files with 656 additions and 23 deletions
@@ -0,0 +1,175 @@
const SessionService = require("../../services/SessionService");
const app = require("express").Router();
const db = require("../../models");
const role = 1;
// List termination configurations
app.get(
"/admin/termination-config",
SessionService.verifySessionMiddleware(role, "admin"),
async function (req, res, next) {
try {
const configs = await db.termination_config.findAll();
res.render("admin/Termination_Config", {
configs,
get_page_name: () => "Termination Configuration",
_base_url: "/admin/termination-config",
});
} catch (error) {
console.log(error);
res
.status(500)
.json({
success: false,
message: "Failed to fetch termination configurations",
});
}
}
);
// Get termination configuration by ID
app.get(
"/admin/termination-config/:id",
SessionService.verifySessionMiddleware(role, "admin"),
async function (req, res, next) {
try {
const { id } = req.params;
const config = await db.termination_config.getByPK(id);
if (!config) {
return res
.status(404)
.json({
success: false,
message: "Termination configuration not found",
});
}
return res.json({ success: true, payload: config });
} catch (error) {
console.log(error);
return res
.status(500)
.json({
success: false,
message: "Failed to fetch termination configuration",
});
}
}
);
// Create new termination configuration
app.post(
"/admin/termination-config",
SessionService.verifySessionMiddleware(role, "admin"),
async function (req, res, next) {
try {
const { message, title, counter } = req.body;
const config = await db.termination_config.create({
message,
title,
counter: parseInt(counter),
});
return res.json({
success: true,
payload: config,
message: "Termination configuration created successfully",
});
} catch (error) {
console.log(error);
return res
.status(500)
.json({
success: false,
message: "Failed to create termination configuration",
});
}
}
);
// Update termination configuration
app.put(
"/admin/termination-config/:id",
SessionService.verifySessionMiddleware(role, "admin"),
async function (req, res, next) {
try {
const { id } = req.params;
const { message, title, counter } = req.body;
const config = await db.termination_config.edit(
{
message,
title,
counter: parseInt(counter),
},
id
);
return res.json({
success: true,
payload: config,
message: "Termination configuration updated successfully",
});
} catch (error) {
console.log(error);
return res
.status(500)
.json({
success: false,
message: "Failed to update termination configuration",
});
}
}
);
// Delete termination configuration
app.delete(
"/admin/termination-config/:id",
SessionService.verifySessionMiddleware(role, "admin"),
async function (req, res, next) {
try {
const { id } = req.params;
await db.termination_config.destroy(id);
return res.json({
success: true,
message: "Termination configuration deleted successfully",
});
} catch (error) {
console.log(error);
return res
.status(500)
.json({
success: false,
message: "Failed to delete termination configuration",
});
}
}
);
// Get default termination configuration (for frontend)
app.get("/api/termination-config", async function (req, res, next) {
try {
// Get the first configuration or create a default one
let config = await db.termination_config.findOne();
if (!config) {
// Create default configuration if none exists
config = await db.termination_config.create({
message:
"You have an allergy to one of the main ingredients in our system. Our current system will not suit you.",
title: "Quiz will now be terminated",
counter: 10,
});
}
return res.json({ success: true, payload: config });
} catch (error) {
console.log(error);
// Return default values if database fails
return res.json({
success: true,
payload: {
message:
"You have an allergy to one of the main ingredients in our system. Our current system will not suit you.",
title: "Quiz will now be terminated",
counter: 10,
},
});
}
});
module.exports = app;
+2
View File
@@ -7,6 +7,7 @@ const AdminActivesController = require("./admin/Admin_actives_controller");
const AdminOutputVariablesController = require("./admin/Admin_output_variables_controller");
const AdminResultProfileController = require("./admin/Admin_result_profile_controller");
const AdminGetProfileSystem = require("./admin/getProfileSystem");
const AdminTerminationConfigController = require("./admin/Admin_termination_config_controller");
const PublicIndex = require("./public/index");
const AdminAnswerController = require("./admin/Admin_answer_controller");
const AdminDashboard = require("./admin/Dashboard");
@@ -20,6 +21,7 @@ module.exports = [
ShopifyWebhook,
AdminResultProfileController,
AdminGetProfileSystem,
AdminTerminationConfigController,
AdminUserController,
AdminQuizController,
AdminQuestionController,