LaLiga-FrontEnd/prisma/post.ts

69 lines
1.4 KiB
TypeScript

import { PrismaClient } from '@prisma/client'
const prisma = new PrismaClient()
export const deletePost = async (slug: string) => {
try {
const post = await prisma.post.findUnique({
where: {
slug: slug
},
include: {
comments: true
}
})
if (!post) {
throw new Error('Post not found')
}
await prisma.like.deleteMany({
where: {
postId: post.id
}
})
await prisma.comment.deleteMany({
where: {
postSlug: slug
}
})
await prisma.post.delete({
where: {
slug: slug
}
})
} catch (error) {
console.error(error, 'Error deleting post')
throw new Error('Error deleting post')
}
}
export const editPost = async (slug: string, newData: any) => {
try {
// Buscar el post que se va a editar
const existingPost = await prisma.post.findUnique({
where: {
slug: slug
}
})
// Verificar si el post existe
if (!existingPost) {
throw new Error('Post not found')
}
// Actualizar el post con los nuevos datos
const updatedPost = await prisma.post.update({
where: {
slug: slug
},
data: {
...newData
// Tags: {
// set: newData.Tags.map((tag: any) => ({ id: tag.id }))
// }
}
})
return updatedPost
} catch (error) {
console.error(error, 'Error editing post')
throw new Error('Error editing post')
}
}