Allow admins to edit transaction amount and status, recalculate payment totals, and mark invoices fully paid when paid transactions cover the payable amount.
34 lines
1.7 KiB
JavaScript
34 lines
1.7 KiB
JavaScript
// /components/payments/paymentRoutes.js
|
|
|
|
const express = require('express');
|
|
const paymentController = require('./paymentController');
|
|
const {
|
|
validateCreatePayment,
|
|
validateUpdatePayment,
|
|
validateAddTransaction,
|
|
validateUpdateTransaction
|
|
} = require('./paymentValidator');
|
|
const authMiddleware = require('../../middlewares/authMiddleware');
|
|
const perm = require('../../middlewares/permissionMiddleware');
|
|
const { PERMISSIONS } = require('../../constants/permissions');
|
|
|
|
const router = express.Router();
|
|
|
|
router.use(authMiddleware);
|
|
|
|
// User Scope
|
|
router.get('/user/my-payments', paymentController.getMyPayments);
|
|
router.post('/user/pay/:id', validateAddTransaction, paymentController.payUser);
|
|
|
|
// Admin Scope
|
|
router.post('/admin/create', perm.requires(PERMISSIONS.PAYMENTS_CREATE), validateCreatePayment, paymentController.create);
|
|
router.get('/admin/get-all', perm.requires(PERMISSIONS.PAYMENTS_READ), paymentController.getAll);
|
|
router.get('/admin/search', perm.requires(PERMISSIONS.PAYMENTS_SEARCH), paymentController.search);
|
|
router.get('/admin/get-one/:id', perm.requires(PERMISSIONS.PAYMENTS_READ), paymentController.getOne);
|
|
router.put('/admin/update/:id', perm.requires(PERMISSIONS.PAYMENTS_UPDATE), validateUpdatePayment, paymentController.update);
|
|
router.put('/admin/transactions/:transactionId', perm.requires(PERMISSIONS.PAYMENTS_UPDATE), validateUpdateTransaction, paymentController.updateTransaction);
|
|
router.post('/admin/transactions/:paymentId', perm.requires(PERMISSIONS.PAYMENTS_UPDATE), validateAddTransaction, paymentController.createTransaction);
|
|
router.delete('/admin/delete/:id', perm.requires(PERMISSIONS.PAYMENTS_DELETE), paymentController.delete);
|
|
|
|
module.exports = router;
|