40 lines
1.0 KiB
TypeScript
40 lines
1.0 KiB
TypeScript
import { requireAuth } from '~/server/utils/auth'
|
|
import { prisma } from '~/server/utils/prisma'
|
|
|
|
export default defineEventHandler(async (event) => {
|
|
const currentUser = requireAuth(event)
|
|
const targetUserIdOrUsername = getRouterParam(event, 'id')
|
|
|
|
if (!targetUserIdOrUsername) {
|
|
throw createError({ statusCode: 400, message: 'User ID is required' })
|
|
}
|
|
|
|
// Находим целевого пользователя (по ID или username)
|
|
const targetUser = await prisma.user.findFirst({
|
|
where: {
|
|
OR: [
|
|
{ id: targetUserIdOrUsername },
|
|
{ username: targetUserIdOrUsername }
|
|
]
|
|
}
|
|
})
|
|
|
|
if (!targetUser) {
|
|
throw createError({ statusCode: 404, message: 'Target user not found' })
|
|
}
|
|
|
|
try {
|
|
const follow = await prisma.follows.findUnique({
|
|
where: {
|
|
followerId_followingId: {
|
|
followerId: currentUser.id,
|
|
followingId: targetUser.id
|
|
}
|
|
}
|
|
})
|
|
return { isFollowing: !!follow }
|
|
} catch (e) {
|
|
return { isFollowing: false }
|
|
}
|
|
})
|