Software: Apache. PHP/8.1.30 uname -a: Linux server1.tuhinhossain.com 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC uid=1002(picotech) gid=1003(picotech) groups=1003(picotech),0(root) Safe-mode: OFF (not secure) /home/picotech/domains/rentals.picotech.app/public_html/server/routes/ drwxr-xr-x |
Viewing file: Select action/file-type: import express from 'express'; import Expense from '../models/Expense.js'; import { auth, authorize } from '../middleware/auth.js'; const router = express.Router(); // Create Expense router.post('/', auth, authorize(['manage']), async (req, res) => { try { const data = req.body; // Convert empty strings to null for optional foreign keys ['building_id', 'floor_id', 'subcategory', 'vendor', 'receipt', 'approved_by', 'payment_method', 'budget_category'].forEach(key => { if (data[key] === '') data[key] = null; }); const expense = await Expense.create(data); res.status(201).json(expense); } catch (err) { console.error('Create expense error:', err); res.status(500).json({ message: 'Failed to create expense', error: err.message }); } }); // Get All Expenses router.get('/', auth, async (req, res) => { try { const expenses = await Expense.findAll(); res.json(expenses); } catch (err) { console.error('Fetch expenses error:', err); res.status(500).json({ message: 'Failed to fetch expenses' }); } }); // Get Expense by ID router.get('/:id', auth, async (req, res) => { try { const expense = await Expense.findByPk(req.params.id); if (!expense) return res.status(404).json({ message: 'Expense not found' }); res.json(expense); } catch (err) { console.error('Fetch expense error:', err); res.status(500).json({ message: 'Failed to fetch expense' }); } }); // Update Expense router.put('/:id', auth, authorize(['manage']), async (req, res) => { try { const expense = await Expense.findByPk(req.params.id); if (!expense) return res.status(404).json({ message: 'Expense not found' }); const data = req.body; ['building_id', 'floor_id', 'subcategory', 'vendor', 'receipt', 'approved_by', 'payment_method', 'budget_category'].forEach(key => { if (data[key] === '') data[key] = null; }); await expense.update(data); res.json(expense); } catch (err) { console.error('Update expense error:', err); res.status(500).json({ message: 'Failed to update expense' }); } }); // Delete Expense router.delete('/:id', auth, authorize(['manage']), async (req, res) => { try { const expense = await Expense.findByPk(req.params.id); if (!expense) return res.status(404).json({ message: 'Expense not found' }); await expense.destroy(); res.status(204).send(); } catch (err) { console.error('Delete expense error:', err); res.status(500).json({ message: 'Failed to delete expense' }); } }); export default router; |
:: Command execute :: | |
--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0038 ]-- |