File size: 1,297 Bytes
634b9bb
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
const SiteSettings = require('../models/siteSettingsModel');

exports.getSettings = async (req, res) => {
    try {
        const settings = await SiteSettings.getSettings();
        res.status(200).json({
            status: 'success',
            data: { settings },
        });
    } catch (err) {
        res.status(500).json({
            status: 'error',
            message: err.message,
        });
    }
};

exports.updateSettings = async (req, res) => {
    try {
        // getSettings handles finding or creating
        let settings = await SiteSettings.getSettings();

        // Update fields
        if (req.body.checkout) {
            settings.checkout = { ...settings.checkout.toObject(), ...req.body.checkout };
        }

        // Add other settings updates here as needed (topBar, footer, etc.)
        if (req.body.topBar) settings.topBar = { ...settings.topBar.toObject(), ...req.body.topBar };
        if (req.body.footer) settings.footer = { ...settings.footer.toObject(), ...req.body.footer };

        await settings.save();

        res.status(200).json({
            status: 'success',
            data: { settings },
        });
    } catch (err) {
        res.status(500).json({
            status: 'error',
            message: err.message,
        });
    }
};