2025-11-01 09:24:26 +08:00
|
|
|
import { Router } from 'express';
|
2025-11-10 13:58:06 +08:00
|
|
|
import { authenticate } from '../../middlewares/authenticate.js';
|
2025-11-01 09:24:26 +08:00
|
|
|
import { validateRequest } from '../../middlewares/validate-request.js';
|
|
|
|
|
import {
|
|
|
|
|
createTransactionSchema,
|
|
|
|
|
updateTransactionSchema,
|
|
|
|
|
transactionIdSchema,
|
|
|
|
|
notificationSchema
|
|
|
|
|
} from './transactions.schema.js';
|
|
|
|
|
import {
|
|
|
|
|
listTransactionsHandler,
|
|
|
|
|
createTransactionHandler,
|
|
|
|
|
getTransactionHandler,
|
|
|
|
|
updateTransactionHandler,
|
|
|
|
|
deleteTransactionHandler,
|
|
|
|
|
createTransactionFromNotificationHandler
|
|
|
|
|
} from './transactions.controller.js';
|
|
|
|
|
|
|
|
|
|
const router = Router();
|
|
|
|
|
|
2025-11-10 13:58:06 +08:00
|
|
|
router.post('/notification', validateRequest({ body: notificationSchema }), createTransactionFromNotificationHandler);
|
|
|
|
|
|
|
|
|
|
router.use(authenticate);
|
|
|
|
|
|
2025-11-01 09:24:26 +08:00
|
|
|
router.get('/', listTransactionsHandler);
|
|
|
|
|
router.post('/', validateRequest({ body: createTransactionSchema }), createTransactionHandler);
|
|
|
|
|
router.get('/:id', validateRequest({ params: transactionIdSchema }), getTransactionHandler);
|
|
|
|
|
router.patch('/:id', validateRequest({ params: transactionIdSchema, body: updateTransactionSchema }), updateTransactionHandler);
|
|
|
|
|
router.delete('/:id', validateRequest({ params: transactionIdSchema }), deleteTransactionHandler);
|
|
|
|
|
|
|
|
|
|
export default router;
|