Files
AI-Bill/apps/backend/src/modules/transactions/transactions.router.ts

40 lines
1.8 KiB
TypeScript
Raw Normal View History

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,
2025-11-13 14:43:48 +08:00
createTransactionFromNotificationHandler,
aiClassifyTransactionHandler,
createBlacklistRuleFromTransactionHandler,
createRuleFromTransactionHandler,
aiSuggestRuleFromTransactionHandler
2025-11-01 09:24:26 +08:00
} 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);
2025-11-13 14:43:48 +08:00
router.post('/:id/ai-classify', validateRequest({ params: transactionIdSchema }), aiClassifyTransactionHandler);
router.post('/:id/rules/blacklist', validateRequest({ params: transactionIdSchema }), createBlacklistRuleFromTransactionHandler);
router.post('/:id/rules/from-notification', validateRequest({ params: transactionIdSchema }), createRuleFromTransactionHandler);
router.post('/:id/rules/ai-suggest', validateRequest({ params: transactionIdSchema }), aiSuggestRuleFromTransactionHandler);
2025-11-01 09:24:26 +08:00
export default router;