26 lines
736 B
TypeScript
26 lines
736 B
TypeScript
import { usePrisma } from "../../utils/prisma";
|
|
|
|
export default defineEventHandler(async (event) => {
|
|
const user = await requireUser(event);
|
|
const body = await readBody(event);
|
|
|
|
const { gameName, stars, feedback, score } = body;
|
|
|
|
if (!gameName || typeof stars !== "number" || stars < 1 || stars > 5) {
|
|
throw createError({ statusCode: 400, message: "Invalid rating data" });
|
|
}
|
|
|
|
const db = usePrisma();
|
|
const rating = await db.gameRating.create({
|
|
data: {
|
|
userId: user.id,
|
|
gameName: String(gameName).toLowerCase().slice(0, 50),
|
|
stars,
|
|
feedback: feedback ? String(feedback).slice(0, 500) : null,
|
|
score: typeof score === "number" ? score : 0,
|
|
},
|
|
});
|
|
|
|
return { id: rating.id };
|
|
});
|