testes/src/services/prafrotServiceV2.js

66 lines
1.8 KiB
JavaScript

import api from './api';
import apiRouteManager from './apiRouteManager';
import { handleRequest } from './serviceUtils';
/**
* Prafrot Service V2 (Test Version)
* Utiliza o ApiRouteManager para desacoplar as URLs e metadados.
*/
export const prafrotServiceV2 = {
// --- Cadastro de Frota (Veículos) ---
getVehicles: () => handleRequest({
apiFn: async () => {
const url = apiRouteManager.getUrl('prafrot.vehicles.list');
const { data } = await api.get(url);
return data;
}
}),
createVehicle: (payload) => handleRequest({
apiFn: async () => {
const url = apiRouteManager.getUrl('prafrot.vehicles.create');
const { data } = await api.post(url, payload);
return data;
}
}),
updateVehicle: (id, payload) => handleRequest({
apiFn: async () => {
const url = apiRouteManager.getUrl('prafrot.vehicles.update', { id });
const { data } = await api.put(url, payload);
return data;
}
}),
deleteVehicle: (id) => handleRequest({
apiFn: async () => {
const url = apiRouteManager.getUrl('prafrot.vehicles.delete', { id });
const { data } = await api.put(url);
return data;
}
}),
// --- Manutenção ---
getMaintenance: () => handleRequest({
apiFn: async () => {
const url = apiRouteManager.getUrl('prafrot.maintenance.list');
const { data } = await api.get(url);
return data;
}
}),
/**
* Obtém os campos e metadados para formulários dinâmicos
* @param {string} entity vehicles, maintenance, claims, etc.
*/
getFields: (entity) => apiRouteManager.getFields(`prafrot.${entity}`),
/**
* Obtém metadados de apresentação (tabelas, cards, etc)
* @param {string} entity vehicles, maintenance, etc.
*/
getPresentation: (entity) => apiRouteManager.getPresentation(`prafrot.${entity}`)
};
export default prafrotServiceV2;