!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

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
2025 x86_64
 

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
Free 28.61 GB of 117.98 GB (24.25%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     renter.js (3.24 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
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 ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0031 ]--