LaLiga-FrontEnd/prisma/like.ts

60 lines
1.5 KiB
TypeScript

import { PrismaClient } from '@prisma/client'
const prisma = new PrismaClient()
export const addLike = async (postId: any, userEmail: any, session: any) => {
try {
if (!session) {
throw new Error('Not Authenticated')
}
const existingLike = await prisma.like.findUnique({
where: { postId_userEmail: { postId, userEmail } }
})
if (existingLike) {
throw new Error('El usuario ya dio like a este post.')
}
await prisma.like.create({
data: {
postId,
userEmail
}
})
const updatedLikes = await prisma.post
.findUnique({
where: { id: postId }
})
.Like()
return updatedLikes
} catch (error) {
console.error('Error al añadir el like:', error)
throw new Error('Error al añadir el like')
}
}
export const deleteLike = async (postId: any, userEmail: string, session: any) => {
try {
// Verificar si el usuario ha dado like al post
const existingLike = await prisma.like.findUnique({
where: { postId_userEmail: { postId, userEmail } }
})
if (!existingLike) {
throw new Error('El usuario no ha dado like a este post.')
}
// Eliminar el like
await prisma.like.delete({
where: { postId_userEmail: { postId, userEmail } }
})
const updatedLikes = await prisma.post
.findUnique({
where: { id: postId }
})
.Like()
return updatedLikes
} catch (error) {
console.error('Error al quitar el like:', error)
throw new Error('Error al quitar el like')
}
}