mirror of
https://github.com/BradNut/svelteKitForBeginners
synced 2025-09-08 17:40:24 +00:00
Adding ability to like/unlike a Tweet.
This commit is contained in:
parent
f1392ba8e5
commit
3ba06b230b
1 changed files with 52 additions and 0 deletions
52
src/routes/home/like.ts
Normal file
52
src/routes/home/like.ts
Normal 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' }
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue