Uname: Linux business55.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64
Software: LiteSpeed
PHP version: 8.1.31 [ PHP INFO ] PHP os: Linux
Server Ip: 162.213.251.212
Your Ip: 3.143.239.189
User: allssztx (535) | Group: allssztx (533)
Safe Mode: OFF
Disable Function:
NONE

name : album.js
const express = require("express")
const Album = require("../schema/Album")
const Artist = require("../schema/Artist")
const Music = require("../schema/Music")
const router = express.Router()

router.post('/new', async (req, res) => {
    try {
        const { thumbnail, title, artist, description, tags } = req.body
        const album = await Album.create({ thumbnail, title, artist, description, tags })
        if (album) {
            return res.json({
                success: true,
                album
            })
        }
        return res.json({
            success: false,
            error: 'Something Went Wrong'
        })
    } catch (error) {
        return res.json({
            success: false,
            error: error.message
        })
    }
})

router.post('/update', async (req, res) => {
    try {
        const { id, thumbnail, title, artist, description, tags } = req.body
        const album = await Album.findById(id)
        if (album) {
            album.thumbnail = thumbnail
            album.title = title
            album.artist = artist
            album.description = description
            album.tags = tags
            await album.save()
            return res.json({
                success: true,
                album
            })
        }
        return res.json({
            success: false,
            error: 'Something Went Wrong'
        })
    } catch (error) {
        return res.json({
            success: false,
            error: error.message
        })
    }
})

router.post('/fetch', async (req, res) => {
    try {
        // const { page } = req.query
        const albums = await Album.find().populate('artist')
        console.log('albums', albums)
        if (albums) {
            return res.json({
                success: true,
                albums
            })
        }
        return res.json({
            success: false,
            error: 'Something Went Wrong'
        })
    } catch (error) {
        return res.json({
            success: false,
            error: error.message
        })
    }
})

router.post('/fetchbyartist', async (req, res) => {
    try {
        const { artist } = req.body
        console.log('artist', artist)
        const albums = await Album.find({ artist }).populate('artist')
        console.log('albums', albums)
        if (albums) {
            return res.json({
                success: true,
                albums
            })
        }
        return res.json({
            success: false,
            error: 'Something Went Wrong'
        })
    } catch (error) {
        return res.json({
            success: false,
            error: error.message
        })
    }
})

router.post('/delete', async (req, res) => {
    try {
        const { id } = req.body
        const album = await Album.findByIdAndDelete(id)
        console.log('album', album)
        if (album) {
            return res.json({
                success: true
            })
        }
        return res.json({
            success: false,
            error: 'Something Went Wrong'
        })
    } catch (error) {
        return res.json({
            success: false,
            error: error.message
        })
    }
})

router.post('/search', async (req, res) => {
    try {
        const { searchQuery } = req.body
        const artists = await Artist.find({
            $or: [
                { firstName: { $regex: searchQuery, $options: "i" } },
                { lastName: { $regex: searchQuery, $options: "i" } },
            ]
        })
        const artistsIds = artists.map((artist) => artist._id)
        const albums = await Album.find({
            $or: [
                { thumbnail: { $regex: searchQuery, $options: "i" } },
                { title: { $regex: searchQuery, $options: "i" } },
                // { artist: { $regex: searchQuery, $options: "i" } },
                { description: { $regex: searchQuery, $options: "i" } },
                { tags: { $regex: searchQuery, $options: "i" } },
                { artist: { $in: artistsIds } },
            ],
        }).populate('artist');
        console.log('albums', albums)
        if (albums) {
            return res.json({
                success: true,
                albums
            })
        }
        return res.json({
            success: false,
            error: 'Something Went Wrong'
        })
    } catch (error) {
        console.log('error', error)
        return res.json({
            success: false,
            error: error.message
        })
    }
})

router.post('/:id', async (req, res) => {
    try {
        const { id } = req.params
        // const { page } = req.query
        const album = await Album.findById(id).populate('artist')
        console.log('album', album)
        if (album) {
            const musics = await Music.find({ album: album._id }).populate('artist').populate('album')
            return res.json({
                success: true,
                album,
                musics
            })
        }
        return res.json({
            success: false,
            error: 'Something Went Wrong'
        })
    } catch (error) {
        return res.json({
            success: false,
            error: error.message
        })
    }
})

module.exports = router
© 2025 GrazzMean-Shell