Spaces:
Runtime error
Runtime error
import { authCondition } from "$lib/server/auth"; | |
import { collections } from "$lib/server/database"; | |
import { error } from "@sveltejs/kit"; | |
import { ObjectId } from "mongodb"; | |
import { z } from "zod"; | |
export async function POST({ params, request, locals }) { | |
const { score } = z | |
.object({ | |
score: z.number().int().min(-1).max(1), | |
}) | |
.parse(await request.json()); | |
const conversationId = new ObjectId(params.id); | |
const messageId = params.messageId; | |
const document = await collections.conversations.updateOne( | |
{ | |
_id: conversationId, | |
...authCondition(locals), | |
"messages.id": messageId, | |
}, | |
{ | |
...(score !== 0 | |
? { | |
$set: { | |
"messages.$.score": score, | |
}, | |
} | |
: { $unset: { "messages.$.score": "" } }), | |
} | |
); | |
if (!document.matchedCount) { | |
throw error(404, "Message not found"); | |
} | |
return new Response(); | |
} | |