habits.andr33v.ru/server/api/village/index.get.ts

28 lines
841 B
TypeScript

// server/api/village/index.get.ts
import { getVillageState, generateVillageForUser } from '../../services/villageService';
import { defineEventHandler } from 'h3';
export default defineEventHandler(async (event) => {
const user = event.context.user;
if (!user) {
throw createError({
statusCode: 401,
statusMessage: 'Unauthorized',
});
}
// Ensure the user has a village generated. This function is idempotent.
await generateVillageForUser(user);
try {
const villageState = await getVillageState(user.id);
return villageState;
} catch (error: any) {
// Catch errors from the service and re-throw them as H3 errors
throw createError({
statusCode: error.statusCode || 500,
statusMessage: error.statusMessage || 'An error occurred while fetching village state.',
});
}
});