Initial Commit

This commit is contained in:
2026-10-03 20:07:49 +02:00
commit a1346c98b1
427 changed files with 59320 additions and 0 deletions
@@ -0,0 +1,23 @@
import { eq } from 'drizzle-orm'
import { z } from 'zod'
import { threadSubscriptions, uploads, users } from '../../../db/schema'
const bodySchema = z.object({ enabled: z.boolean() })
export default defineEventHandler(async (event) => {
const user = await requireUser(event)
const uploadId = getRouterParam(event, 'id') ?? ''
if (!/^[A-Za-z0-9]{1,8}$/.test(uploadId)) {
throw createError({ statusCode: 400, statusMessage: 'Ungültige ID' })
}
const { enabled } = await readValidatedBody(event, bodySchema.parse)
const db = useDb()
const [upload] = await db.select({ id: uploads.id }).from(uploads).where(eq(uploads.id, uploadId)).limit(1)
if (!upload) throw createError({ statusCode: 404, statusMessage: 'Upload nicht gefunden' })
await db.transaction(async (tx) => {
await tx.select({ id: users.id }).from(users).where(eq(users.id, user.id)).for('update')
await tx.insert(threadSubscriptions).values({ uploadId, userId: user.id, enabled })
.onDuplicateKeyUpdate({ set: { enabled } })
})
return { enabled }
})