import { MenuRutas, GetHeaderRequest, GetResponseBody, GetResponseBodyError } from './RutasConfig.jsx';
import axios from 'axios';

//////////////Menu ///////////////
export const Obtener_Menu_Request = async (pToken, ModuloID) => {
    try {
        const data = { ModuloID }
        const result = await axios.post(MenuRutas.Obtener_Menu, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
        return await GetResponseBody(result);
    } catch (error) {
        let pResult = {};
        pResult.status = 401;
        let _result = GetResponseBodyError(pResult);
        return _result;
    }
}


export const Obtener_MenuOpciones_Request = async (pToken, ModuloID, Menu_Id) => {
    try {
        const data = { ModuloID, Menu_Id }
        const result = await axios.post(MenuRutas.Obtener_MenuOpciones, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
        return await GetResponseBody(result);
    } catch (error) {
        let pResult = {};
        pResult.status = 401;
        let _result = GetResponseBodyError(pResult);
        return _result;
    }
}

/////////////Menu opciones ///////////

export const Obtener_MenuOpciones_Lista_Request = async (pToken, pModulo, pUsuarioId, pMenuId) => {
    try {
        const data = { pModulo, pUsuarioId, pMenuId }
        const result = await axios.post(MenuRutas.SegMenuOpciones_Lista, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
        return await GetResponseBody(result);
    } catch (error) {
        let pResult = {};
        pResult.status = 401;
        let _result = GetResponseBodyError(pResult);
        return _result;
    }
}

export const Obtener_MenuNombre_Request = async (pToken, pModulo, pMenuNombre) => {
    try {
        const data = { pModulo, pMenuNombre }
        const result = await axios.post(MenuRutas.Obtener_MenuNombre, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
        return await GetResponseBody(result);
    } catch (error) {
        let pResult = {};
        pResult.status = 401;
        let _result = GetResponseBodyError(pResult);
        return _result;
    }
}


//////////////Validaciones///////////
export const menu_Validar_Opcion_Request = async (pToken, pEmpresa, pMenuId, pOpcionId, pLogin, pPassword, pDesc, pTipoDoc, pDoc, pPantalla, pModuloId) => {
    try {
        const data = { pEmpresa, pMenuId, pOpcionId, pLogin, pPassword, pDesc, pTipoDoc, pDoc, pPantalla, pModuloId }
        const result = await axios.post(MenuRutas.Menu_Validar_Opcion, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
        return await GetResponseBody(result);
    } catch (error) {
        let pResult = {};
        pResult.status = 401;
        let _result = GetResponseBodyError(pResult);
        return _result;
    }
}
