owltide/server/api/auth/session.get.ts

22 lines
650 B
TypeScript
Raw Normal View History

import { readAccounts, readSubscriptions } from "~/server/database";
import { AccountSession } from "~/shared/types/account";
export default defineEventHandler(async (event): Promise<AccountSession | undefined> => {
const session = await getServerSession(event);
if (!session)
return;
const accounts = await readAccounts();
const subscriptions = await readSubscriptions();
const push = Boolean(
subscriptions.find(sub => sub.type === "push" && sub.sessionId === session.id)
);
await refreshServerSession(event, session);
return {
id: session.id,
account: accounts.find(account => account.id === session.accountId)!,
push,
};
})