const { db } = require("../db/db-connect");
const logger = require("../utils/logger");
const globalService = require("../services/globalService");

async function getUserByMatricule(matricule) {
  const criteria = {
    filter: `matricule='${matricule}' || matriculeIT='${matricule}'`,
    expand: "region",
  };

  return globalService.fetchInfoByCriteria("utilisateur", criteria);
}

async function getUserById(id) {
  const criteria = {
    filter: `id='${id}'`,
    expand: "region",
  };

  return globalService.fetchInfoByCriteria("utilisateur", criteria);
}

async function getUsersByAuthGroupe(authGroupe) {
  try {
    const resultList = await db.records.getList("utilisateur", 1, 50, {
      filter: `authGroupe='${authGroupe}'`,
      expand: "region",
    });

    if (resultList.totalItems > 0) {
      return resultList;
    } else {
      return null;
    }
  } catch (error) {
    logger.log('error', "Erreur lors de la récupération de la liste des Administrateurs :", error);
    return null;
  }
}

module.exports = {
  getUserByMatricule,
  getUsersByAuthGroupe,
  getUserById
};
