Controllers_ActionsController.js

const CrudController = require("./CrudController");
const ActionsService = require("../Services/ActionsService");
const JsonResponse = require("./JsonResponse");

/**
 * @extends Myintranet.Controllers.CrudController
 * @memberOf Myintranet.Controllers
 * @inheritDoc
 */
class ActionsController extends CrudController {
  constructor(db) {
    let service = new ActionsService(db);
    super(service);
  }


  /**
   * Supprime les plus anciennes action, le nombre d'enregistrements a supprimer est passé dans les params de la route 
   * @param {*} request 
   * @param {*} response 
   */
  deleteByNb(request, response) {
    let nbRows = request.params.nb;
    if (nbRows && nbRows === "0") {
      response.json(
        new JsonResponse(
          false,
          {},
          "Veuillez renseigner le nombre de lines a supprimer"
        )
      );
    } else {
      this.service
        .deleteByNb(request)
        .then((data) => {
          response.json(new JsonResponse(true, data, ""));
        })
        .catch((err) => {
          response.json(new JsonResponse(false, err, err.message));
        });
    }
  }
/**
 * Supprimme toutes les actions de la base de données
 * @param {*} request 
 * @param {*} response 
 */
  deleteAll(request, response) {
    this.service
      .deleteAll(request)
      .then((data) => {
        response.json(new JsonResponse(true, data, ""));
      })
      .catch((err) => {
        response.json(new JsonResponse(false, err, err.message));
      });
  }

  /**
   * return les actions pour un prevHisto
   * @param {*} request 
   * @param {*} response 
   */
  getPrevActions(request, response) {
    this.service
      .getPrevActions(request)
      .then((data) => {
        response.json(new JsonResponse(true, data, ""));
      })
      .catch((err) => {
        response.json(new JsonResponse(false, err, err.message));
      });
  }
/**
 * return les actions relatives au Cra
 * @param {*} request 
 * @param {*} response 
 */
  getCraActions(request, response) {
    this.service
      .getCraActions(request)
      .then((data) => {
        response.json(new JsonResponse(true, data, ""));
      })
      .catch((err) => {
        response.json(new JsonResponse(false, err, err.message));
      });
  }
  toDto(data){
    return data;
  }
  toDtoArray(arrayData){
    arrayData.data =  arrayData.data.map(this.toDto);
    return arrayData;
  }

  /**
   * retourn les actions relatives a la mission
   * @param {*} request 
   * @param {*} response 
   */
  getMissionsActions(request, response) {
    // controle the body of the requerst
    this.service
      .getMissionsActions(request)
      .then((data) => {
        response.json(new JsonResponse(true, data, ""));
      })
      .catch((err) => {
        response.json(new JsonResponse(false, err, err.message));
      });
  }
}

module.exports = ActionsController;