You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

36 lines
1.0 KiB

import { dbGlobal } from "drizzle-pkg/lib/db";
import { users } from "drizzle-pkg/lib/schema/auth";
import { eq } from "drizzle-orm";
import { KNOWN_CONFIG_KEYS } from "#server/service/config/registry";
export default defineWrappedResponseHandler(async (event) => {
const user = await event.context.auth.requireUser();
const entries = await Promise.all(
KNOWN_CONFIG_KEYS.map(async (key) => {
const value = await event.context.config.get(key);
return [key, value] as const;
}),
);
const [row] = await dbGlobal
.select({
nickname: users.nickname,
avatar: users.avatar,
})
.from(users)
.where(eq(users.id, user.id))
.limit(1);
return R.success({
user: {
id: user.id,
username: user.username,
role: user.role,
publicSlug: user.publicSlug,
nickname: row?.nickname ?? null,
avatar: row?.avatar ?? null,
},
config: Object.fromEntries(entries),
});
});