Update: nueva version Horux Despachos
This commit is contained in:
90
apps/web/lib/api/documentos.ts
Normal file
90
apps/web/lib/api/documentos.ts
Normal file
@@ -0,0 +1,90 @@
|
||||
import { apiClient } from './client';
|
||||
import type { OpinionCumplimiento } from '@horux/shared';
|
||||
|
||||
export async function getOpiniones(contribuyenteId?: string): Promise<OpinionCumplimiento[]> {
|
||||
const params = contribuyenteId ? `?contribuyenteId=${encodeURIComponent(contribuyenteId)}` : '';
|
||||
const { data } = await apiClient.get(`/documentos/opiniones${params}`);
|
||||
return data;
|
||||
}
|
||||
|
||||
export async function descargarOpinionPdf(id: number): Promise<Blob> {
|
||||
const { data } = await apiClient.get(`/documentos/opiniones/${id}/pdf`, {
|
||||
responseType: 'blob',
|
||||
});
|
||||
return data;
|
||||
}
|
||||
|
||||
export async function consultarOpinion(contribuyenteId?: string): Promise<OpinionCumplimiento> {
|
||||
const params = contribuyenteId ? `?contribuyenteId=${encodeURIComponent(contribuyenteId)}` : '';
|
||||
const { data } = await apiClient.post(`/documentos/opiniones/consultar${params}`);
|
||||
return data;
|
||||
}
|
||||
|
||||
export async function consultarConstancia(contribuyenteId?: string): Promise<any> {
|
||||
const params = contribuyenteId ? `?contribuyenteId=${encodeURIComponent(contribuyenteId)}` : '';
|
||||
const { data } = await apiClient.post(`/documentos/constancia/consultar${params}`);
|
||||
return data;
|
||||
}
|
||||
|
||||
// ──────────────────────────────────────────────────────────────────
|
||||
// Documentos Extras — PDFs libres (acuses, contratos, poderes, etc.)
|
||||
// ──────────────────────────────────────────────────────────────────
|
||||
|
||||
export interface DocumentoExtra {
|
||||
id: number;
|
||||
contribuyenteId: string | null;
|
||||
nombre: string;
|
||||
descripcion: string | null;
|
||||
categoria: string | null;
|
||||
pdfFilename: string;
|
||||
subidoPor: string | null;
|
||||
createdAt: string;
|
||||
}
|
||||
|
||||
export interface CreateExtraInput {
|
||||
nombre: string;
|
||||
descripcion?: string;
|
||||
categoria?: string;
|
||||
pdfBase64: string;
|
||||
pdfFilename: string;
|
||||
}
|
||||
|
||||
export async function listarExtras(
|
||||
contribuyenteId?: string | null,
|
||||
categoria?: string | null,
|
||||
): Promise<DocumentoExtra[]> {
|
||||
const params = new URLSearchParams();
|
||||
if (contribuyenteId) params.set('contribuyenteId', contribuyenteId);
|
||||
if (categoria) params.set('categoria', categoria);
|
||||
const { data } = await apiClient.get(`/documentos/extras?${params}`);
|
||||
return data;
|
||||
}
|
||||
|
||||
export async function listarCategoriasExtras(
|
||||
contribuyenteId?: string | null,
|
||||
): Promise<string[]> {
|
||||
const params = new URLSearchParams();
|
||||
if (contribuyenteId) params.set('contribuyenteId', contribuyenteId);
|
||||
const { data } = await apiClient.get(`/documentos/extras/categorias?${params}`);
|
||||
return data;
|
||||
}
|
||||
|
||||
export async function crearExtra(
|
||||
input: CreateExtraInput,
|
||||
contribuyenteId?: string | null,
|
||||
): Promise<DocumentoExtra> {
|
||||
const body = contribuyenteId ? { ...input, contribuyenteId } : input;
|
||||
const { data } = await apiClient.post('/documentos/extras', body);
|
||||
return data;
|
||||
}
|
||||
|
||||
export async function descargarExtraPdf(id: number): Promise<Blob> {
|
||||
const { data } = await apiClient.get(`/documentos/extras/${id}/pdf`, {
|
||||
responseType: 'blob',
|
||||
});
|
||||
return data;
|
||||
}
|
||||
|
||||
export async function eliminarExtra(id: number): Promise<void> {
|
||||
await apiClient.delete(`/documentos/extras/${id}`);
|
||||
}
|
||||
Reference in New Issue
Block a user