Spell UI, variables saving and mail server fixes (finally working in prod !!!)

This commit is contained in:
Clément Pons
2025-09-30 17:15:49 +02:00
parent 1642cd513f
commit 61d2d144b7
16 changed files with 336 additions and 269 deletions

View File

@@ -1,35 +0,0 @@
import { and, eq, sql } from 'drizzle-orm';
import useDatabase from '~/composables/useDatabase';
import { characterTable } from '~/db/schema';
import type { CharacterVariables } from '~/types/character';
export default defineEventHandler(async (e) => {
const id = getRouterParam(e, "id");
if(!id)
{
setResponseStatus(e, 400);
return;
}
const session = await getUserSession(e);
if(!session.user)
{
setResponseStatus(e, 401);
return;
}
const db = useDatabase();
const character = db.select({
health: characterTable.health,
mana: characterTable.mana,
}).from(characterTable).where(and(eq(characterTable.id, parseInt(id, 10)), eq(characterTable.owner, session.user.id))).get();
if(character !== undefined)
{
return character as CharacterVariables;
}
setResponseStatus(e, 404);
return;
});

View File

@@ -1,7 +1,8 @@
import { eq } from 'drizzle-orm';
import useDatabase from '~/composables/useDatabase';
import { characterTable } from '~/db/schema';
import type { CharacterValues } from '~/types/character';
import { CharacterVariablesValidation } from '~/shared/character.util';
import type { CharacterVariables } from '~/types/character';
export default defineEventHandler(async (e) => {
const id = getRouterParam(e, "id");
@@ -11,11 +12,12 @@ export default defineEventHandler(async (e) => {
return;
}
const body = await readBody(e) as CharacterValues;
if(!body)
const body = await readValidatedBody(e, CharacterVariablesValidation.safeParse);
if(!body.success)
{
console.error(body.error);
setResponseStatus(e, 400);
return;
throw body.error;
}
const db = useDatabase();
@@ -35,8 +37,7 @@ export default defineEventHandler(async (e) => {
}
db.update(characterTable).set({
health: body.health,
mana: body.mana,
variables: body.data
}).where(eq(characterTable.id, parseInt(id, 10))).run();
setResponseStatus(e, 200);