// /components/expenses/expenseController.js 'use strict'; const catchAsync = require('../../utils/catchAsync'); const expenseService = require('./expenseService'); const { successResponse, listResponse } = require('../../utils/apiResponse'); exports.getAll = catchAsync(async (req, res) => { const { data, meta } = await expenseService.getAllExpenses(req.query); return listResponse(res, 200, data, meta); }); exports.getOne = catchAsync(async (req, res) => { const expense = await expenseService.getExpenseById(req.params.id); return successResponse(res, 200, 'Expense retrieved successfully', expense); }); exports.create = catchAsync(async (req, res) => { const expense = await expenseService.createExpense(req.body, req.user?._id); return successResponse(res, 201, 'Expense created successfully', expense); }); exports.update = catchAsync(async (req, res) => { const expense = await expenseService.updateExpense(req.params.id, req.body); return successResponse(res, 200, 'Expense updated successfully', expense); }); exports.delete = catchAsync(async (req, res) => { await expenseService.deleteExpense(req.params.id); return successResponse(res, 200, 'Expense deleted successfully'); });