Files
wedding-website/lib/db/queries/uploads.ts
T
Raul Lugo 4ced446c9c
Build & Deployment / Build & Deploy (push) Failing after 5s
initial commit
2026-08-10 17:55:26 +02:00

47 lines
1.2 KiB
TypeScript

import { db } from "@/lib/db/client"
import type { PhotoUpload } from "@/lib/db/types"
export async function getPhotoUploadByInvitationId(
invitationId: string,
): Promise<PhotoUpload | null> {
return (
(await db
.selectFrom("photo_uploads")
.selectAll()
.where("invitation_id", "=", invitationId)
.executeTakeFirst()) ?? null
)
}
export async function upsertPhotoUpload(input: {
invitationId: string
bucket: string
objectKey: string
originalFilename: string
contentType: string
sizeBytes: number
}) {
return db
.insertInto("photo_uploads")
.values({
invitation_id: input.invitationId,
bucket: input.bucket,
object_key: input.objectKey,
original_filename: input.originalFilename,
content_type: input.contentType,
size_bytes: input.sizeBytes,
})
.onConflict((oc) =>
oc.column("invitation_id").doUpdateSet({
bucket: input.bucket,
object_key: input.objectKey,
original_filename: input.originalFilename,
content_type: input.contentType,
size_bytes: input.sizeBytes,
updated_at: new Date(),
}),
)
.returningAll()
.executeTakeFirstOrThrow()
}