68 lines
3.2 KiB
TypeScript
68 lines
3.2 KiB
TypeScript
import type { RequestHandler } from './$types';
|
|
import { json } from '@sveltejs/kit';
|
|
import { getAuthTokens, getActiveCompanyId, authenticatedFetch } from '$lib/server/api';
|
|
|
|
export const GET: RequestHandler = async ({ cookies, fetch }) => {
|
|
const { accessToken } = getAuthTokens(cookies);
|
|
|
|
if (!accessToken) {
|
|
return json({ error: 'Not authenticated' }, { status: 401 });
|
|
}
|
|
|
|
const companyId = await getActiveCompanyId(cookies, fetch);
|
|
|
|
if (!companyId) {
|
|
return json({ error: 'No company selected' }, { status: 400 });
|
|
}
|
|
|
|
try {
|
|
// Cargar todos los datos de referencia en paralelo
|
|
const [
|
|
invoiceTypesResponse,
|
|
customsBrokersResponse,
|
|
clientsResponse,
|
|
providersResponse,
|
|
currencyTypesResponse,
|
|
transportTypesResponse,
|
|
sealsResponse,
|
|
incotermsResponse,
|
|
pedimentosResponse
|
|
] = await Promise.all([
|
|
authenticatedFetch('v1/public/refrence_data/invoice-types/?page=1&page_size=100', {}, cookies, fetch),
|
|
authenticatedFetch(`v1/a76/customs-brokers/?company_id=${companyId}&page=1&page_size=100`, {}, cookies, fetch),
|
|
authenticatedFetch(`v1/a76/clients-providers/?company_id=${companyId}&type=client&page=1&page_size=1000`, {}, cookies, fetch),
|
|
authenticatedFetch(`v1/a76/clients-providers/?company_id=${companyId}&type=provider&page=1&page_size=1000`, {}, cookies, fetch),
|
|
authenticatedFetch('v1/public/refrence_data/currency-types/?page=1&page_size=100', {}, cookies, fetch),
|
|
authenticatedFetch('v1/public/refrence_data/transport-types/?page=1&page_size=100', {}, cookies, fetch),
|
|
authenticatedFetch(`v1/a76/seals/?company_id=${companyId}&page=1&page_size=100`, {}, cookies, fetch),
|
|
authenticatedFetch('v1/public/refrence_data/incoterms/?page=1&page_size=100', {}, cookies, fetch),
|
|
authenticatedFetch(`v1/a76/pedimentos/?company_id=${companyId}&page=1&page_size=100`, {}, cookies, fetch)
|
|
]);
|
|
|
|
const invoiceTypes = invoiceTypesResponse.ok ? await invoiceTypesResponse.json() : { items: [] };
|
|
const customsBrokers = customsBrokersResponse.ok ? await customsBrokersResponse.json() : { items: [] };
|
|
const clients = clientsResponse.ok ? await clientsResponse.json() : { items: [] };
|
|
const providers = providersResponse.ok ? await providersResponse.json() : { items: [] };
|
|
const currencyTypes = currencyTypesResponse.ok ? await currencyTypesResponse.json() : { items: [] };
|
|
const transportTypes = transportTypesResponse.ok ? await transportTypesResponse.json() : { items: [] };
|
|
const seals = sealsResponse.ok ? await sealsResponse.json() : { items: [] };
|
|
const incoterms = incotermsResponse.ok ? await incotermsResponse.json() : { items: [] };
|
|
const pedimentos = pedimentosResponse.ok ? await pedimentosResponse.json() : { items: [] };
|
|
|
|
return json({
|
|
invoiceTypes: invoiceTypes.items || [],
|
|
customsBrokers: customsBrokers.items || [],
|
|
clients: clients.items || [],
|
|
providers: providers.items || [],
|
|
currencyTypes: currencyTypes.items || [],
|
|
transportTypes: transportTypes.items || [],
|
|
seals: seals.items || [],
|
|
incoterms: incoterms.items || [],
|
|
pedimentos: pedimentos.items || []
|
|
});
|
|
} catch (err) {
|
|
console.error('Error loading reference data:', err);
|
|
return json({ error: 'Error loading reference data' }, { status: 500 });
|
|
}
|
|
};
|