39 lines
1.0 KiB
TypeScript
39 lines
1.0 KiB
TypeScript
import { usePrisma } from "../../utils/prisma";
|
|
import { getProfile } from "../../db/profile";
|
|
|
|
export default defineEventHandler(async (event) => {
|
|
const user = await requireUser(event);
|
|
const db = usePrisma();
|
|
|
|
const profile = await getProfile(user.id);
|
|
const name = profile?.nickname || profile?.username || "Anonym";
|
|
|
|
// Create game challenge
|
|
const challenge = await db.gameChallenge.create({
|
|
data: {
|
|
challengerId: user.id,
|
|
challengerName: name,
|
|
},
|
|
});
|
|
|
|
// Auto-post in community so others can accept
|
|
const post = await db.communityPost.create({
|
|
data: {
|
|
userId: user.id,
|
|
category: "challenge",
|
|
content: `${name} sucht einen Gegner für Tic-Tac-Toe! Wer nimmt die Challenge an?`,
|
|
isAnonymous: false,
|
|
isModerated: false,
|
|
challengeId: challenge.id,
|
|
},
|
|
});
|
|
|
|
// Link post back to challenge
|
|
await db.gameChallenge.update({
|
|
where: { id: challenge.id },
|
|
data: { postId: post.id },
|
|
});
|
|
|
|
return { challengeId: challenge.id, postId: post.id };
|
|
});
|