import { Seguridad, GetHeaderRequest, GetResponseBody, GetResponseBodyFecth } from './RutasConfig.jsx';
import axios from 'axios';


//////////////EMPRESA ///////////////
export const Empresa_lista_Request = async (pToken) => {
    const data = {};
    const result = await fetch(Seguridad.Empresa_Lista, {
        method: 'POST',
        headers: GetHeaderRequest(pToken),
        body: JSON.stringify(data)
    });
    return await GetResponseBodyFecth(result);
}

export const Empresa_Consulta_Request = async (pToken, EmpresaId) => {
    const data = { EmpresaId };
    const result = await fetch(Seguridad.Empresa_Consulta, {
        method: 'POST',
        headers: GetHeaderRequest(pToken),
        body: JSON.stringify(data)
    });
    return await GetResponseBodyFecth(result);
}

export const Empresa_Guardar_Request = async (pToken, pDatos, pParamCadena) => {
    const data = { pDatos, pParamCadena }
    const result = await fetch(Seguridad.Empresa_Guardar,
        {
            method: 'POST',
            headers: GetHeaderRequest(pToken),
            body: JSON.stringify(data)
        });
    return await GetResponseBodyFecth(result);
}
export const Empresa_Modificar_Request = async (pToken, pDatos, pParamCadena) => {
    const data = { pDatos, pParamCadena }
    const result = await fetch(Seguridad.Empresa_Modificar,
        {
            method: 'POST',
            headers: GetHeaderRequest(pToken),
            body: JSON.stringify(data)
        });
    return await GetResponseBodyFecth(result);
}

export const Empresa_ModificarImagen_Request = async (pToken, pDatos) => {
    const data = { pDatos }
    const result = await fetch(Seguridad.Empresa_ModificarImagen,
        {
            method: 'POST',
            headers: GetHeaderRequest(pToken),
            body: JSON.stringify(data)
        });
    return await GetResponseBodyFecth(result);
}
export const Empresa_Eliminar_Request = async (pToken, pEmpresaId) => {
    const data = { pEmpresaId }
    const result = await fetch(Seguridad.Empresa_Eliminar,
        {
            method: 'POST',
            headers: GetHeaderRequest(pToken),
            body: JSON.stringify(data)
        });
    return await GetResponseBodyFecth(result);
}

export const Empresa_Foto_Request = async (pToken, pEmpresa) => {
    const data = { pEmpresa }
    const result = await fetch(Seguridad.Empresa_Foto,
        {
            method: 'POST',
            headers: GetHeaderRequest(pToken),
            body: JSON.stringify(data)
        });
    return await GetResponseBodyFecth(result);
}

//////////////ORGANIGRAMA///////////

export const Organigrama_lista_Request = async (pToken, pEmpresa) => {
    const data = { EmpresaId: pEmpresa };
    const result = await fetch(Seguridad.Organigrama_Lista,
        {
            method: 'POST',
            headers: GetHeaderRequest(pToken),
            body: JSON.stringify(data)
        });
    return await GetResponseBodyFecth(result);
}

////////////USUARIO//////////////////

export const Seg_Usuario_Encriptar_Llave_Request = async (pLlave) => {
    const data = { pLlave: pLlave };
    const result = await axios.post(Seguridad.Seg_Usuario_Encriptar_Llave, JSON.stringify(data), {
        headers: { 'Content-Type': 'application/json' },
    });
    return await GetResponseBody(result);
}

export const Seg_Usuario_Login_App_Request = async (pToken) => {
    const data = { pToken: pToken };
    const result = await axios.post(Seguridad.Seg_Usuario_Login_App, JSON.stringify(data), {
        headers: { 'Content-Type': 'application/json' },
    });
    return await GetResponseBody(result);
}

export const Seg_Usuario_Listar_Request = async (pToken, pLista, pTipo) => {
    try {
        const data = { pLista, pTipo };
        const result = await axios.post(Seguridad.Seg_Usuario_Listar, JSON.stringify(data), { headers: GetHeaderRequest(pToken) });
        return await GetResponseBody(result);
    } catch (error) {
        let pResult = {};
        pResult.status = 401;
        let _result = GetResponseBodyError(pResult);
        return _result;
    }
}