Adding ability to like/unlike a Tweet.

This commit is contained in:
Bradley Shellnut 2022-04-06 15:57:29 -07:00
parent f1392ba8e5
commit 3ba06b230b

52
src/routes/home/like.ts Normal file
View file

@ -0,0 +1,52 @@
import prisma from "$root/lib/prisma";
import type { RequestHandler } from "@sveltejs/kit";
export const post: RequestHandler = async ({ request }) => {
const form = await request.formData()
const id = +form.get('id')
const liked = await prisma.liked.count({
where: { tweetId: id }
})
if (liked === 1) {
await prisma.liked.delete({ where: { tweetId: id } })
const count = await prisma.tweet.findUnique({
where: { id },
select: { likes: true }
})
await prisma.tweet.update({
where: { id },
data: { likes: count.likes -= 1 }
})
return {
status: 303,
headers: { location: '/home' }
}
}
await prisma.liked.create({
data: {
tweetId: id,
user: { connect: { id: 1 } }
}
})
const count = await prisma.tweet.findUnique({
where: { id },
select: { likes: true }
})
await prisma.tweet.update({
where: { id },
data: { likes: (count.likes += 1) }
})
return {
status: 303,
headers: { location: '/home' }
}
}