Controllers_SettingsController.js
const fs = require("fs");
const path = require("path");
const SettingsValidator = require("../Validators/SettingsValidator");
/**
* @memberOf Myintranet.Controllers
* @inheritDoc
*/
class SettingsController {
constructor(db) {
this.db = db;
}
/**
* retreve settings fron cronConfig.json
* @param {*} request
* @param {*} response
*/
getCronSettings(request, response) {
try {
let fileData = fs.readFileSync(
path.join(process.cwd(), "Cron", "cronConfig.json"),
{ encoding: "utf8" }
);
let jsonData = JSON.parse(fileData);
response.json({ success: true, data: jsonData, message: "" });
} catch (error) {
response.json({ success: false, data: error, message: error.message });
}
}
/**
* save settings to cronConfig.json
* @param {*} request
* @param {*} response
*/
setCronSettings(request, response) {
try {
const validationVerif = SettingsValidator.validate({...request.body});
let {datePrev,dateCra,heurPrev,heurCra,minutePrev,minuteCra,sendMail,sendSms} =request.body;
const isDatesValidPrev = datePrev >= 1 && datePrev <= 31;
const isDatesValidCra = dateCra >= 1 && dateCra <= 31;
const isHeurValidPrev = heurPrev >= 0 && heurPrev <= 24;
const isHeurValidCra = heurCra >= 0 && heurCra <= 24;
const isMinuteValidPrev = minutePrev >= 0 && minutePrev <= 60;
const isMinuteValidCra = minuteCra >= 0 && minuteCra <= 60;
if (!isDatesValidPrev) {
response.json({
success: false,
message: "Les dates du Prev doivent être comprises entre 1 et 31",
});
}else if (!isDatesValidCra) {
response.json({
success: false,
message: "Les dates du Cra doivent être comprises entre 1 et 31",
});
}else if (!isHeurValidPrev) {
response.json({
success: false,
message: "Les heures du Prev doivent être comprises entre 0 et 24 ",
});
}else if (!isHeurValidCra) {
response.json({
success: false,
message: "Les heures du Cra doivent être comprises entre 0 et 24 ",
});
}else if (!isMinuteValidPrev) {
response.json({
success: false,
message: "Les minutes du Prev doivent être comprises entre 0 et 60 ",
});
}else if (!isMinuteValidCra) {
response.json({
success: false,
message: "Les minutes du Cra doivent être comprises entre 0 et 60 ",
});
}else{
let fileData = fs.readFileSync(
path.join(process.cwd(), "Cron", "cronConfig.json"),
{ encoding: "utf8" }
);
let jsonData = JSON.parse(fileData);
jsonData.datePrev = datePrev;
jsonData.heurPrev = heurPrev;
jsonData.minutePrev = minutePrev;
jsonData.dateCra = dateCra;
jsonData.heurCra = heurCra;
jsonData.minuteCra = minuteCra;
jsonData.sendMail = sendMail;
jsonData.sendSms = sendSms;
fs.writeFileSync(
path.join(process.cwd(), "Cron", "cronConfig.json"),
JSON.stringify(jsonData, null, 4)
);
response.json({ success: true, data: jsonData, message: "" });
}
} catch (error) {
response.json({ success: false, data: error, message: error.message });
}
}
}
module.exports = SettingsController;