import { FeaturedWallpaper } from "@db_models"
import momentTimezone from "moment-timezone"

export default {
    method: "PUT",
    route: "/featured_wallpaper",
    middlewares: ["withAuthentication", "onlyAdmin"],
    fn: async (req, res) => {
        const data = req.body.wallpaper

        if (!data) {
            return res.status(400).json({
                error: "Invalid data"
            })
        }

        // try to find if data._id exists, else create a new one
        let wallpaper = null

        if (data._id) {
            wallpaper = await FeaturedWallpaper.findOne({
                _id: data._id
            })
        } else {
            wallpaper = new FeaturedWallpaper()
        }

        const current_timezone = momentTimezone.tz.guess()

        wallpaper.active = data.active ?? wallpaper.active ?? true
        wallpaper.date = data.date ?? momentTimezone.tz(Date.now(), current_timezone).format()
        wallpaper.url = data.url ?? wallpaper.url
        wallpaper.author = data.author ?? wallpaper.author

        await wallpaper.save()

        return res.json(wallpaper)
    }
}