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;