Source: Services/UsersServices.js

import { DAOMongoDbFactory } from "../Factory/DAOMongoDbFactory.js";

const Factory = new DAOMongoDbFactory();
const UsersDAO = Factory.createUsersDAO();

(async () => await UsersDAO.init())();

/**
 * Represents a service for handling users requests
 */
const UsersServices = {
    close: async () => 
    {
        return await UsersDAO.close();
    },

    /**
     * Get users
     * @param {object} filters - The filters to apply
     * @returns {Array} - An array of users
     */
    getUsers: async (filters) => {
        return await UsersDAO.getUsers(filters);
    },

    /**
     * Update users
     * @param {number} userId - The id of the user to update
     * @param {object} user - The user data to update
     * @returns {object} - The user updated
     */
    updateUsers: async (userId, user) => {
        return await UsersDAO.updateUser(userId, user);
    },

    /**
     * Delete users
     * @param {number} userId - The id of the user to delete
     * @returns {object} - The user deleted
     */
    deleteUsers: async (userId) => {
        return await UsersDAO.deleteUser(userId);
    },

    /**
     * Create users
     * @param {object} user - The user to create
     * @returns {object} - The user created
     */
    createUsers: async (user) => {
        return await UsersDAO.createUser(user);
    },

    /**
     * Add a revoked token in database
     * @param {string} token - The token to add
     * @returns {object} - The token added
     * @async
     */
    addrevokedtoken: async (token) => {
        return await UsersDAO.addrevokedtoken(token);
    },

    /**
     * Is the token revoked
     * @param {string} token - The token to check
     * @returns {boolean} - True if the token is revoked, false otherwise
     * @async
     */
    isTokenRevoked: async (token) => {
        return await UsersDAO.isTokenRevoked(token);
    },

    /**
     * Get the role of a user
     * @param {number} userId - The id of the user
     * @returns {object} - The role of the user
     * @async
     */
    getRole: async (userId) => {
        return await UsersDAO.getRole(userId);
    },

    /**
     * Get the permissions of a user
     * @param {number} userId - The id of the user
     * @returns {object} - The permissions of the user
     * @async
     */
    getPermissions: async (userId) => {
        return await UsersDAO.getPermissions(userId);
    },

    /**
     * Vérifie si un token est révoqué.
     * @param {string} token - Le token à vérifier.
     * @returns {boolean} - True si le token est révoqué, sinon false.
     */
    isTokenRevoked: async (token) => {
        return await UsersDAO.isTokenRevoked(token);
    },

    /**
     * Ajoute un token révoqué dans la base de données.
     * @param {string} token - Le token à révoquer.
     * @returns {object} - Résultat de l'insertion.
     */
    addRevokedToken: async (token) => {
        return await UsersDAO.addRevokedToken(token);
    }
}

export default UsersServices;