feat(api): add GET /cfdi/:id/xml endpoint
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -45,6 +45,26 @@ export async function getCfdiById(req: Request, res: Response, next: NextFunctio
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export async function getXml(req: Request, res: Response, next: NextFunction) {
|
||||||
|
try {
|
||||||
|
if (!req.tenantSchema) {
|
||||||
|
return next(new AppError(400, 'Schema no configurado'));
|
||||||
|
}
|
||||||
|
|
||||||
|
const xml = await cfdiService.getXmlById(req.tenantSchema, String(req.params.id));
|
||||||
|
|
||||||
|
if (!xml) {
|
||||||
|
return next(new AppError(404, 'XML no encontrado para este CFDI'));
|
||||||
|
}
|
||||||
|
|
||||||
|
res.set('Content-Type', 'application/xml');
|
||||||
|
res.set('Content-Disposition', `attachment; filename="cfdi-${req.params.id}.xml"`);
|
||||||
|
res.send(xml);
|
||||||
|
} catch (error) {
|
||||||
|
next(error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export async function getResumen(req: Request, res: Response, next: NextFunction) {
|
export async function getResumen(req: Request, res: Response, next: NextFunction) {
|
||||||
try {
|
try {
|
||||||
if (!req.tenantSchema) {
|
if (!req.tenantSchema) {
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ router.use(tenantMiddleware);
|
|||||||
router.get('/', cfdiController.getCfdis);
|
router.get('/', cfdiController.getCfdis);
|
||||||
router.get('/resumen', cfdiController.getResumen);
|
router.get('/resumen', cfdiController.getResumen);
|
||||||
router.get('/:id', cfdiController.getCfdiById);
|
router.get('/:id', cfdiController.getCfdiById);
|
||||||
|
router.get('/:id/xml', cfdiController.getXml);
|
||||||
router.post('/', cfdiController.createCfdi);
|
router.post('/', cfdiController.createCfdi);
|
||||||
router.post('/bulk', cfdiController.createManyCfdis);
|
router.post('/bulk', cfdiController.createManyCfdis);
|
||||||
router.delete('/:id', cfdiController.deleteCfdi);
|
router.delete('/:id', cfdiController.deleteCfdi);
|
||||||
|
|||||||
Reference in New Issue
Block a user