46 lines
1.2 KiB
TypeScript
46 lines
1.2 KiB
TypeScript
import { NextApiRequest, NextApiResponse } from 'next'
|
|
import prisma from '../../../utils/connect'
|
|
|
|
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
|
|
if (req.method !== 'GET') {
|
|
return res.status(405).json({ message: 'Method Not Allowed' })
|
|
}
|
|
|
|
const userEmail = req.query.userEmail as string
|
|
if (!userEmail) {
|
|
return res.status(400).json({ message: 'User email is required' })
|
|
}
|
|
|
|
try {
|
|
const user = await prisma.user.findUnique({
|
|
where: { email: userEmail },
|
|
include: {
|
|
Favorite: {
|
|
include: {
|
|
post: {
|
|
include: {
|
|
Like: true,
|
|
Favorite: true,
|
|
Category: true,
|
|
comments: true
|
|
// _count: true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
})
|
|
|
|
if (!user) {
|
|
return res.status(404).json({ message: 'User not found' })
|
|
}
|
|
|
|
const favoritePosts = user.Favorite.map((favorite) => favorite.post)
|
|
|
|
return res.status(200).json(favoritePosts)
|
|
} catch (error: any) {
|
|
console.error(error)
|
|
res.status(500).json({ message: 'Something went wrong', error: error.message })
|
|
}
|
|
}
|