import type { Request, Response } from 'express'; import { uploadFiel, getFielStatus, deleteFiel } from '../services/fiel.service.js'; import type { FielUploadRequest } from '@horux/shared'; /** * Sube y configura las credenciales FIEL */ export async function upload(req: Request, res: Response): Promise { try { const tenantId = req.headers['x-tenant-id'] as string; if (!tenantId) { res.status(400).json({ error: 'Tenant ID requerido' }); return; } const { cerFile, keyFile, password } = req.body as FielUploadRequest; if (!cerFile || !keyFile || !password) { res.status(400).json({ error: 'cerFile, keyFile y password son requeridos' }); return; } const result = await uploadFiel(tenantId, cerFile, keyFile, password); if (!result.success) { res.status(400).json({ error: result.message }); return; } res.json({ message: result.message, status: result.status, }); } catch (error: any) { console.error('[FIEL Controller] Error en upload:', error); res.status(500).json({ error: 'Error interno del servidor' }); } } /** * Obtiene el estado de la FIEL configurada */ export async function status(req: Request, res: Response): Promise { try { const tenantId = req.headers['x-tenant-id'] as string; if (!tenantId) { res.status(400).json({ error: 'Tenant ID requerido' }); return; } const fielStatus = await getFielStatus(tenantId); res.json(fielStatus); } catch (error: any) { console.error('[FIEL Controller] Error en status:', error); res.status(500).json({ error: 'Error interno del servidor' }); } } /** * Elimina las credenciales FIEL */ export async function remove(req: Request, res: Response): Promise { try { const tenantId = req.headers['x-tenant-id'] as string; if (!tenantId) { res.status(400).json({ error: 'Tenant ID requerido' }); return; } const deleted = await deleteFiel(tenantId); if (!deleted) { res.status(404).json({ error: 'No hay FIEL configurada' }); return; } res.json({ message: 'FIEL eliminada correctamente' }); } catch (error: any) { console.error('[FIEL Controller] Error en remove:', error); res.status(500).json({ error: 'Error interno del servidor' }); } }