pncp-sdk
Version:
SDK Node.js para consumir a API PNCP (Portal Nacional de Contratações Públicas)
24 lines (21 loc) • 812 B
JavaScript
import { formatToPncpDate, parseResponseDates } from './dateUtils.js';
export default async function fetchWithValidation(url, params, schema, api) {
const parsed = schema.safeParse(params);
if (!parsed.success) {
throw new Error(`Parâmetros inválidos: ${JSON.stringify(parsed.error.format())}`);
}
const formatted = { ...parsed.data };
if (formatted.dataInicial) {
formatted.dataInicial = formatToPncpDate(formatted.dataInicial);
}
if (formatted.dataFinal) {
formatted.dataFinal = formatToPncpDate(formatted.dataFinal);
}
try {
const res = await api.get(url, { params: formatted });
return parseResponseDates(res.data);
} catch (error) {
console.error(`Erro ao buscar ${url}:`, error.response?.data || error.message);
throw error;
}
}