feat: Add web admin page for quest management and refactor Discord bot's quest UI to use new components.

This commit is contained in:
syntaxbullet
2026-01-15 17:21:49 +01:00
parent 9e5c6b5ac3
commit 2f73f38877
12 changed files with 552 additions and 94 deletions

View File

@@ -169,6 +169,34 @@ export async function createWebServer(config: WebServerConfig = {}): Promise<Web
}
}
// Quest Management
if (url.pathname === "/api/quests" && req.method === "POST") {
try {
const { questService } = await import("@shared/modules/quest/quest.service");
const data = await req.json();
// Basic validation could be added here or rely on service/DB
const result = await questService.createQuest({
name: data.name,
description: data.description || "",
triggerEvent: data.triggerEvent,
requirements: { target: Number(data.target) || 1 },
rewards: {
xp: Number(data.xpReward) || 0,
balance: Number(data.balanceReward) || 0
}
});
return Response.json({ success: true, quest: result[0] });
} catch (error) {
logger.error("web", "Error creating quest", error);
return Response.json(
{ error: "Failed to create quest", details: error instanceof Error ? error.message : String(error) },
{ status: 500 }
);
}
}
// Settings Management
if (url.pathname === "/api/settings") {
try {