import { eq } from "drizzle-orm"; import useDatabase from "~/composables/useDatabase"; import { usersTable } from "~/db/schema"; export default defineEventHandler(async (e) => { const session = await getUserSession(e); if(!session || !session.user || !session.user.id) { return createError({ statusCode: 401, message: 'Unauthorized', }); } const id = getRouterParam(e, 'id'); if(!id) { return createError({ statusCode: 403, message: 'Forbidden', }); } if(session.user.id.toString() !== id) { return createError({ statusCode: 401, message: 'Unauthorized', }); } const db = useDatabase(); const data = db.select({ state: usersTable.state }).from(usersTable).where(eq(usersTable.id, session.user.id)).get(); if(!data) { return createError({ statusCode: 401, message: 'Unauthorized', }); } if(data.state === 1) { setResponseStatus(e, 200); return; } runTask('mail', { payload: { type: 'mail', to: [session.user.email], template: 'registration', //@TODO data: { username: session.user.username, timestamp: Date.now(), id: session.user.id, } } }); setResponseStatus(e, 200); return; })