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 { Settings } from '../models/index.js'; import upload from '../middleware/upload.js'; import fs from 'fs'; import path from 'path'; import { fileURLToPath } from 'url'; const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); const router = express.Router(); // Get all settings router.get('/', async (req, res) => { try { const settings = await Settings.findAll(); res.json(settings); } catch (err) { res.status(500).json({ error: 'Failed to fetch settings' }); } }); // Define upload fields (logo, favicon, etc.) const uploadFields = upload.fields([ { name: 'logo', maxCount: 1 }, { name: 'favicon', maxCount: 1 }, ]); // Create or update a setting // router.post('/', uploadFields, async (req, res) => { // try { // const settingsData = req.body; // // If logo uploaded // if (req.files?.logo?.[0]) { // const logoFile = req.files.logo[0]; // settingsData.logo = `/uploads/documents/${logoFile.filename}`; // } // // If favicon uploaded // if (req.files?.favicon?.[0]) { // const faviconFile = req.files.favicon[0]; // settingsData.favicon = `/uploads/documents/${faviconFile.filename}`; // } // // Save each setting field (can also be upserts) // const entries = Object.entries(settingsData); // const results = []; // for (const [name, value] of entries) { // const [setting, created] = await Settings.upsert({ // name, // value, // }); // results.push({ name, value }); // } // res.status(201).json(results); // } catch (err) { // console.error('Settings error:', err); // res.status(400).json({ error: err.message }); // } // }); router.post('/', uploadFields, async (req, res) => { try { const settingsData = req.body; // Handle file uploads if (req.files?.logo?.[0]) { const file = req.files.logo[0]; // Check if setting already exists const existingLogoSetting = await Settings.findOne({ where: { name: 'logo' } }); if (existingLogoSetting && existingLogoSetting.value) { const oldPath = path.join(__dirname, '../../uploads', existingLogoSetting.value.replace('/uploads/', '')) // Replace with actual root if (fs.existsSync(oldPath)) { fs.unlinkSync(oldPath); } } settingsData.logo = `/uploads/documents/${file.filename}`; } if (req.files?.favicon?.[0]) { const file = req.files.favicon[0]; const existingFaviconSetting = await Settings.findOne({ where: { name: 'favicon' } }); if (existingFaviconSetting && existingFaviconSetting.value) { const oldPath = path.join(__dirname, '../../uploads', existingFaviconSetting.value.replace('/uploads/', '')) // Replace with actual root if (fs.existsSync(oldPath)) { fs.unlinkSync(oldPath); } } settingsData.favicon = `/uploads/documents/${file.filename}`; } // Save each setting const entries = Object.entries(settingsData); const results = []; for (const [name, value] of entries) { await Settings.upsert({ name, value }); results.push({ name, value }); } res.status(201).json(results); } catch (err) { console.error('Settings error:', err); res.status(400).json({ error: err.message }); } }); export default router; |
:: Command execute :: | |
--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0066 ]-- |