Merge branch 'feature/doda-endpoints-faltantes' into feature/visible-clicks-csv

This commit is contained in:
2026-04-29 08:32:07 -06:00
13 changed files with 1209 additions and 336 deletions

View File

@@ -478,6 +478,56 @@ export async function getDodaAltaStatus(
return api.get<DodaAltaStatusResponse>(`/v1/a76/doda/alta-status/${taskId}`);
}
export async function postDodaConsulta(
dodaId: number,
companyId: number,
variant: 'doda' | 'pita' = 'doda'
): Promise<ApiResponse<DodaAltaResponse>> {
const params = new URLSearchParams({
company_id: companyId.toString(),
variant,
});
return api.post<DodaAltaResponse>(`/v1/a76/doda/${dodaId}/consulta?${params}`, {});
}
export async function getDodaConsultaStatus(
taskId: string
): Promise<ApiResponse<DodaAltaStatusResponse>> {
return api.get<DodaAltaStatusResponse>(`/v1/a76/doda/consulta-status/${taskId}`);
}
export async function postDodaConsultaApply(
dodaId: number,
taskId: string,
companyId: number
): Promise<ApiResponse<Record<string, unknown>>> {
const params = new URLSearchParams({
company_id: companyId.toString(),
});
return api.post<Record<string, unknown>>(
`/v1/a76/doda/${dodaId}/consulta-apply/${taskId}?${params}`,
{}
);
}
export async function postDodaEliminar(
dodaId: number,
companyId: number,
variant: 'doda' | 'pita' = 'doda'
): Promise<ApiResponse<DodaAltaResponse>> {
const params = new URLSearchParams({
company_id: companyId.toString(),
variant,
});
return api.post<DodaAltaResponse>(`/v1/a76/doda/${dodaId}/eliminar?${params}`, {});
}
export async function getDodaEliminarStatus(
taskId: string
): Promise<ApiResponse<DodaAltaStatusResponse>> {
return api.get<DodaAltaStatusResponse>(`/v1/a76/doda/eliminar-status/${taskId}`);
}
export async function getDodaElegibilidad(
dodaId: number,
companyId: number,

View File

@@ -7,6 +7,7 @@
getDodaAltaStatus,
type DodaAltaStatusResponse
} from '$lib/api/dashboard/a76/general_catalogs/doda';
import type { ApiResponse } from '$lib/api';
import { m } from '$lib/i18n/messages';
let {
@@ -14,6 +15,9 @@
taskId,
dodaId,
variant = 'doda',
title = m['sidebar.doda_alta.progress_title'](),
description = 'Task ID',
getStatus = getDodaAltaStatus,
onComplete,
onCancel
}: {
@@ -21,6 +25,9 @@
taskId: string;
dodaId?: number;
variant?: 'doda' | 'pita';
title?: string;
description?: string;
getStatus?: (taskId: string) => Promise<ApiResponse<DodaAltaStatusResponse>>;
onComplete?: (result: DodaAltaStatusResponse) => void;
onCancel?: () => void;
} = $props();
@@ -84,7 +91,7 @@
if (!taskId || !pollingActive || pollInFlight) return;
pollInFlight = true;
try {
const res = await getDodaAltaStatus(taskId);
const res = await getStatus(taskId);
if (res.error) {
consecutivePollErrors += 1;
@@ -151,8 +158,8 @@
<Dialog.Root bind:open>
<Dialog.Content class="max-w-md">
<Dialog.Header>
<Dialog.Title>{m['sidebar.doda_alta.progress_title']()}</Dialog.Title>
<Dialog.Description>Alta {variantLabel} — Task ID: {taskId}</Dialog.Description>
<Dialog.Title>{title}</Dialog.Title>
<Dialog.Description>{description} {variantLabel} — Task ID: {taskId}</Dialog.Description>
</Dialog.Header>
<div class="space-y-4 py-2">