55 lines
1.3 KiB
TypeScript
55 lines
1.3 KiB
TypeScript
import { Router } from 'express';
|
|
import * as invoiceController from '../controllers/invoice.controller.js';
|
|
import { authenticate, requirePermission } from '../middleware/auth.js';
|
|
|
|
const router = Router();
|
|
|
|
// ==================== INVOICE CRUD ====================
|
|
|
|
// Alle Rechnungen für ein EnergyContractDetails abrufen
|
|
// GET /api/energy-details/:ecdId/invoices
|
|
router.get(
|
|
'/:ecdId/invoices',
|
|
authenticate,
|
|
requirePermission('contracts:read'),
|
|
invoiceController.getInvoices
|
|
);
|
|
|
|
// Einzelne Rechnung abrufen
|
|
// GET /api/energy-details/:ecdId/invoices/:invoiceId
|
|
router.get(
|
|
'/:ecdId/invoices/:invoiceId',
|
|
authenticate,
|
|
requirePermission('contracts:read'),
|
|
invoiceController.getInvoice
|
|
);
|
|
|
|
// Neue Rechnung hinzufügen
|
|
// POST /api/energy-details/:ecdId/invoices
|
|
router.post(
|
|
'/:ecdId/invoices',
|
|
authenticate,
|
|
requirePermission('contracts:update'),
|
|
invoiceController.addInvoice
|
|
);
|
|
|
|
// Rechnung aktualisieren
|
|
// PUT /api/energy-details/:ecdId/invoices/:invoiceId
|
|
router.put(
|
|
'/:ecdId/invoices/:invoiceId',
|
|
authenticate,
|
|
requirePermission('contracts:update'),
|
|
invoiceController.updateInvoice
|
|
);
|
|
|
|
// Rechnung löschen
|
|
// DELETE /api/energy-details/:ecdId/invoices/:invoiceId
|
|
router.delete(
|
|
'/:ecdId/invoices/:invoiceId',
|
|
authenticate,
|
|
requirePermission('contracts:delete'),
|
|
invoiceController.deleteInvoice
|
|
);
|
|
|
|
export default router;
|