261 lines
8.2 KiB
JavaScript
261 lines
8.2 KiB
JavaScript
/**
|
|
* Workspace Conciliação API - Service for handling API requests
|
|
*
|
|
* Endpoints:
|
|
* - Categories: /api/categorias/apresentar
|
|
* - Rules: /api/regras/apresentar
|
|
* - Statement: /api/extrato/apresentar
|
|
* - Caixinhas: /api/caixinhas/apresentar
|
|
*/
|
|
|
|
import api from './api';
|
|
|
|
const WorkspaceConciliacaoAPI = {
|
|
baseUrl: "https://dev.workspace.itguys.com.br",
|
|
|
|
getHeaders: async function () {
|
|
// getTokenForModule agora é async
|
|
const token = await getTokenForModule('workspace');
|
|
const fallbackToken = !token ? localStorage.getItem('x-access-token') : null;
|
|
const finalToken = token || fallbackToken;
|
|
const setor = getSetorForModule('workspace') || 'Workspace';
|
|
|
|
if (!finalToken && isDevelopment()) {
|
|
secureLog("WorkspaceConciliacaoAPI: No token found for workspace module.");
|
|
}
|
|
|
|
return {
|
|
"Content-Type": "application/json",
|
|
"x-access-token": finalToken || "",
|
|
"x-setor": setor || ""
|
|
};
|
|
},
|
|
|
|
fetchCategories: async function () {
|
|
try {
|
|
const response = await api.get('/categorias/apresentar');
|
|
if (!response.data) throw new Error(`Status ${response.status}`);
|
|
const raw = response.data;
|
|
let data = raw?.dados ?? raw?.Base_Dados_API ?? raw;
|
|
if (!Array.isArray(data)) {
|
|
data = Object.values(data || {});
|
|
}
|
|
return data.map(item => ({
|
|
id: item.idcategoria || item.id || 0,
|
|
name: item.categoria || item.name || ''
|
|
}));
|
|
} catch (error) {
|
|
console.error("WorkspaceConciliacaoAPI: Error fetching categories", error);
|
|
return [];
|
|
}
|
|
},
|
|
|
|
fetchRules: async function () {
|
|
try {
|
|
const response = await api.get('/regras/apresentar');
|
|
if (!response.data) throw new Error(`Status ${response.status}`);
|
|
const raw = response.data;
|
|
let data = raw?.dados ?? raw?.Base_Dados_API ?? raw;
|
|
if (!Array.isArray(data)) {
|
|
data = Object.values(data || {});
|
|
}
|
|
return data.map(item => ({
|
|
id: item.idregras_financeiro || item.id || 0,
|
|
name: item.regra || item.name || '',
|
|
condition: item.condicional || item.condition || '',
|
|
categoryId: item.categoria || item.categoryId || null,
|
|
caixinha: item.caixinha || null,
|
|
beneficiario: item.beneficiario_pagador || item.beneficiario || null
|
|
}));
|
|
} catch (error) {
|
|
console.error("WorkspaceConciliacaoAPI: Error fetching rules", error);
|
|
return [];
|
|
}
|
|
},
|
|
|
|
fetchCaixinhas: async function () {
|
|
try {
|
|
const response = await api.get('/caixinhas/apresentar');
|
|
if (!response.data) throw new Error(`Status ${response.status}`);
|
|
const raw = response.data;
|
|
let data = raw?.dados ?? raw?.Base_Dados_API ?? raw;
|
|
if (!Array.isArray(data)) {
|
|
data = Object.values(data || {});
|
|
}
|
|
return data.map(item => ({
|
|
id: item.idcaixinhas_financeiro || item.id || 0,
|
|
name: item.caixinha || item.name || ''
|
|
}));
|
|
} catch (error) {
|
|
console.error("WorkspaceConciliacaoAPI: Error fetching caixinhas", error);
|
|
return [];
|
|
}
|
|
},
|
|
|
|
createCategory: async function (payload) {
|
|
try {
|
|
const response = await api.post('/categorias/create', payload);
|
|
if (!response.data) throw new Error(`Status ${response.status}`);
|
|
return response.data;
|
|
} catch (error) {
|
|
console.error("WorkspaceConciliacaoAPI: Error creating category", error);
|
|
throw error;
|
|
}
|
|
},
|
|
|
|
editCategory: async function (payload) {
|
|
try {
|
|
const response = await api.post('/categorias/edit', payload);
|
|
if (!response.data) throw new Error(`Status ${response.status}`);
|
|
return response.data;
|
|
} catch (error) {
|
|
console.error("WorkspaceConciliacaoAPI: Error editing category", error);
|
|
throw error;
|
|
}
|
|
},
|
|
|
|
deleteCategory: async function (id) {
|
|
try {
|
|
const response = await api.delete('/categorias/delete', {
|
|
data: { idcategoria: id }
|
|
});
|
|
if (!response.data) throw new Error(`Status ${response.status}`);
|
|
return response.data;
|
|
} catch (error) {
|
|
console.error("WorkspaceConciliacaoAPI: Error deleting category", error);
|
|
throw error;
|
|
}
|
|
},
|
|
|
|
createRule: async function (payload) {
|
|
try {
|
|
const response = await api.post('/regra/create', payload);
|
|
if (!response.data) throw new Error(`Status ${response.status}`);
|
|
return response.data;
|
|
} catch (error) {
|
|
console.error("WorkspaceConciliacaoAPI: Error creating rule", error);
|
|
throw error;
|
|
}
|
|
},
|
|
|
|
editRule: async function (payload) {
|
|
try {
|
|
const response = await api.post('/regras/edit', payload);
|
|
if (!response.data) throw new Error(`Status ${response.status}`);
|
|
return response.data;
|
|
} catch (error) {
|
|
console.error("WorkspaceConciliacaoAPI: Error editing rule", error);
|
|
throw error;
|
|
}
|
|
},
|
|
|
|
deleteRule: async function (id) {
|
|
try {
|
|
const response = await api.delete('/regras/delete', {
|
|
data: { idregras_financeiro: id }
|
|
});
|
|
if (!response.data) throw new Error(`Status ${response.status}`);
|
|
return response.data;
|
|
} catch (error) {
|
|
console.error("WorkspaceConciliacaoAPI: Error deleting rule", error);
|
|
throw error;
|
|
}
|
|
},
|
|
|
|
createCaixinha: async function (payload) {
|
|
try {
|
|
const response = await api.post('/caixinha/create', payload);
|
|
if (!response.data) throw new Error(`Status ${response.status}`);
|
|
return response.data;
|
|
} catch (error) {
|
|
console.error("WorkspaceConciliacaoAPI: Error creating caixinha", error);
|
|
throw error;
|
|
}
|
|
},
|
|
|
|
editCaixinha: async function (payload) {
|
|
try {
|
|
const response = await api.post('/caixinha/edit', payload);
|
|
if (!response.data) throw new Error(`Status ${response.status}`);
|
|
return response.data;
|
|
} catch (error) {
|
|
console.error("WorkspaceConciliacaoAPI: Error editing caixinha", error);
|
|
throw error;
|
|
}
|
|
},
|
|
|
|
deleteCaixinha: async function (id) {
|
|
try {
|
|
const response = await api.delete('/caixinhas/delete', {
|
|
data: { idcaixinhas_financeiro: id }
|
|
});
|
|
if (!response.data) throw new Error(`Status ${response.status}`);
|
|
return response.data;
|
|
} catch (error) {
|
|
console.error("WorkspaceConciliacaoAPI: Error deleting caixinha", error);
|
|
throw error;
|
|
}
|
|
},
|
|
|
|
// Manual Reconciliation Update Endpoints
|
|
// Note: Backend uses POST for "inserir" endpoints (not PUT/UPDATE)
|
|
updateTransactionCategory: async function (idExtrato, idCategoria) {
|
|
try {
|
|
const response = await api.post('/categoria_extrato/inserir', {
|
|
idextrato: idExtrato,
|
|
categoria: idCategoria
|
|
});
|
|
if (!response.data) throw new Error(`Status ${response.status}`);
|
|
return response.data;
|
|
} catch (error) {
|
|
console.error("WorkspaceConciliacaoAPI: Error updating transaction category", error);
|
|
throw error;
|
|
}
|
|
},
|
|
|
|
updateTransactionBeneficiary: async function (idExtrato, beneficiary) {
|
|
try {
|
|
const response = await api.post('/beneficiario_pagador/inserir', {
|
|
idextrato: idExtrato,
|
|
beneficiario_pagador: beneficiary
|
|
});
|
|
if (!response.data) throw new Error(`Status ${response.status}`);
|
|
return response.data;
|
|
} catch (error) {
|
|
console.error("WorkspaceConciliacaoAPI: Error updating transaction beneficiary", error);
|
|
throw error;
|
|
}
|
|
},
|
|
|
|
updateTransactionBox: async function (idExtrato, idCaixinha) {
|
|
try {
|
|
const response = await api.post('/caixinha_extrato/inserir', {
|
|
idextrato: idExtrato,
|
|
caixinha: idCaixinha
|
|
});
|
|
if (!response.data) throw new Error(`Status ${response.status}`);
|
|
return response.data;
|
|
} catch (error) {
|
|
console.error("WorkspaceConciliacaoAPI: Error updating transaction box", error);
|
|
throw error;
|
|
}
|
|
},
|
|
|
|
// Automated Reconciliation Update Endpoint
|
|
updateTransactionRule: async function (idExtrato, updateObj) {
|
|
try {
|
|
const response = await api.post('/regra_categoria/edit', {
|
|
idextrato: idExtrato,
|
|
...updateObj
|
|
});
|
|
if (!response.data) throw new Error(`Status ${response.status}`);
|
|
return response.data;
|
|
} catch (error) {
|
|
console.error("WorkspaceConciliacaoAPI: Error updating transaction rule", error);
|
|
throw error;
|
|
}
|
|
}
|
|
};
|
|
|
|
export default WorkspaceConciliacaoAPI;
|