first commit
This commit is contained in:
18
api/src/routes/admin.routes.ts
Normal file
18
api/src/routes/admin.routes.ts
Normal file
@@ -0,0 +1,18 @@
|
||||
import { Router } from 'express';
|
||||
import {
|
||||
getSettings,
|
||||
listUsers,
|
||||
testSmtp,
|
||||
updateSettings,
|
||||
updateUser
|
||||
} from '../controllers/admin.controller.js';
|
||||
import { requireAdmin, requireAuth } from '../middleware/auth.js';
|
||||
|
||||
export const adminRouter = Router();
|
||||
|
||||
adminRouter.use(requireAuth, requireAdmin);
|
||||
adminRouter.get('/settings', getSettings);
|
||||
adminRouter.put('/settings', updateSettings);
|
||||
adminRouter.get('/users', listUsers);
|
||||
adminRouter.patch('/users/:id', updateUser);
|
||||
adminRouter.post('/test-smtp', testSmtp);
|
||||
8
api/src/routes/auth.routes.ts
Normal file
8
api/src/routes/auth.routes.ts
Normal file
@@ -0,0 +1,8 @@
|
||||
import { Router } from 'express';
|
||||
import { login, me, publicConfig, register } from '../controllers/auth.controller.js';
|
||||
import { requireAuth } from '../middleware/auth.js';
|
||||
export const authRouter = Router();
|
||||
authRouter.post('/register', register);
|
||||
authRouter.post('/login', login);
|
||||
authRouter.get('/config', publicConfig);
|
||||
authRouter.get('/me', requireAuth, me);
|
||||
9
api/src/routes/category.routes.ts
Normal file
9
api/src/routes/category.routes.ts
Normal file
@@ -0,0 +1,9 @@
|
||||
import { Router } from 'express';
|
||||
import { createCategory, deleteCategory, listCategories, updateCategory } from '../controllers/category.controller.js';
|
||||
import { requireAuth } from '../middleware/auth.js';
|
||||
export const categoryRouter = Router();
|
||||
categoryRouter.use(requireAuth);
|
||||
categoryRouter.get('/', listCategories);
|
||||
categoryRouter.post('/', createCategory);
|
||||
categoryRouter.put('/:id', updateCategory);
|
||||
categoryRouter.delete('/:id', deleteCategory);
|
||||
11
api/src/routes/expense.routes.ts
Normal file
11
api/src/routes/expense.routes.ts
Normal file
@@ -0,0 +1,11 @@
|
||||
import { Router } from 'express';
|
||||
import { addProof, createExpense, deleteExpense, listExpenses, updateExpense } from '../controllers/expense.controller.js';
|
||||
import { requireAuth } from '../middleware/auth.js';
|
||||
import { uploadSingleProof } from '../middleware/upload.js';
|
||||
export const expenseRouter = Router();
|
||||
expenseRouter.use(requireAuth);
|
||||
expenseRouter.get('/', listExpenses);
|
||||
expenseRouter.post('/', uploadSingleProof, createExpense);
|
||||
expenseRouter.put('/:id', updateExpense);
|
||||
expenseRouter.delete('/:id', deleteExpense);
|
||||
expenseRouter.post('/:id/proofs', uploadSingleProof, addProof);
|
||||
19
api/src/routes/index.ts
Normal file
19
api/src/routes/index.ts
Normal file
@@ -0,0 +1,19 @@
|
||||
import { Router } from 'express';
|
||||
import { adminRouter } from './admin.routes.js';
|
||||
import { authRouter } from './auth.routes.js';
|
||||
import { categoryRouter } from './category.routes.js';
|
||||
import { expenseRouter } from './expense.routes.js';
|
||||
import { merchantRouter } from './merchant.routes.js';
|
||||
import { reportRouter } from './report.routes.js';
|
||||
import { statisticsRouter } from './statistics.routes.js';
|
||||
|
||||
export const apiRouter = Router();
|
||||
|
||||
apiRouter.get('/health', (_req, res) => res.json({ status: 'ok' }));
|
||||
apiRouter.use('/auth', authRouter);
|
||||
apiRouter.use('/categories', categoryRouter);
|
||||
apiRouter.use('/expenses', expenseRouter);
|
||||
apiRouter.use('/statistics', statisticsRouter);
|
||||
apiRouter.use('/merchants', merchantRouter);
|
||||
apiRouter.use('/reports', reportRouter);
|
||||
apiRouter.use('/admin', adminRouter);
|
||||
16
api/src/routes/merchant.routes.ts
Normal file
16
api/src/routes/merchant.routes.ts
Normal file
@@ -0,0 +1,16 @@
|
||||
import { Router } from 'express';
|
||||
import {
|
||||
createMerchant,
|
||||
deleteMerchant,
|
||||
listMerchants,
|
||||
updateMerchant
|
||||
} from '../controllers/merchant.controller.js';
|
||||
import { requireAuth } from '../middleware/auth.js';
|
||||
|
||||
export const merchantRouter = Router();
|
||||
|
||||
merchantRouter.use(requireAuth);
|
||||
merchantRouter.get('/', listMerchants);
|
||||
merchantRouter.post('/', createMerchant);
|
||||
merchantRouter.put('/:id', updateMerchant);
|
||||
merchantRouter.delete('/:id', deleteMerchant);
|
||||
16
api/src/routes/report.routes.ts
Normal file
16
api/src/routes/report.routes.ts
Normal file
@@ -0,0 +1,16 @@
|
||||
import { Router } from 'express';
|
||||
import {
|
||||
getPreferences,
|
||||
previewReport,
|
||||
sendReport,
|
||||
updatePreferences
|
||||
} from '../controllers/report.controller.js';
|
||||
import { requireAuth } from '../middleware/auth.js';
|
||||
|
||||
export const reportRouter = Router();
|
||||
|
||||
reportRouter.use(requireAuth);
|
||||
reportRouter.get('/preferences', getPreferences);
|
||||
reportRouter.put('/preferences', updatePreferences);
|
||||
reportRouter.post('/preview', previewReport);
|
||||
reportRouter.post('/send', sendReport);
|
||||
6
api/src/routes/statistics.routes.ts
Normal file
6
api/src/routes/statistics.routes.ts
Normal file
@@ -0,0 +1,6 @@
|
||||
import { Router } from 'express';
|
||||
import { getOverview } from '../controllers/statistics.controller.js';
|
||||
import { requireAuth } from '../middleware/auth.js';
|
||||
export const statisticsRouter = Router();
|
||||
statisticsRouter.use(requireAuth);
|
||||
statisticsRouter.get('/overview', getOverview);
|
||||
Reference in New Issue
Block a user