forked from BRETT/BRETT
Initial Commit
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
import { and, eq } from 'drizzle-orm'
|
||||
import { notifications, users } from '../../../db/schema'
|
||||
|
||||
export default defineEventHandler(async (event) => {
|
||||
const user = await requireUser(event)
|
||||
const id = Number(getRouterParam(event, 'id'))
|
||||
if (!Number.isInteger(id) || id <= 0) {
|
||||
throw createError({ statusCode: 400, statusMessage: 'Ungültige ID' })
|
||||
}
|
||||
await useDb().transaction(async (tx) => {
|
||||
await tx.select({ id: users.id }).from(users).where(eq(users.id, user.id)).for('update')
|
||||
const [notification] = await tx.select({ uploadId: notifications.uploadId }).from(notifications)
|
||||
.where(and(eq(notifications.id, id), eq(notifications.userId, user.id))).limit(1)
|
||||
if (!notification) return
|
||||
await tx.update(notifications).set({ isRead: true })
|
||||
.where(and(eq(notifications.uploadId, notification.uploadId), eq(notifications.userId, user.id)))
|
||||
})
|
||||
return { ok: true }
|
||||
})
|
||||
Reference in New Issue
Block a user