diff --git a/server/utils/session.ts b/server/utils/session.ts index f6d9d77..dfba536 100644 --- a/server/utils/session.ts +++ b/server/utils/session.ts @@ -15,6 +15,7 @@ import { } from "~/server/database"; import { broadcastEvent } from "../streams"; import type { ApiAuthenticationProvider, ApiSession } from "~/shared/types/api"; +import { serverUserToApiAccount } from "./user"; async function removeSessionSubscription(sessionId: number) { const subscriptions = await readSubscriptions(); @@ -182,7 +183,7 @@ export async function serverSessionToApi(event: H3Event, session: ServerSession) return { id: session.id, - account, + account: serverUserToApiAccount(account), authenticationProvider: session.authenticationProvider, authenticationName: session.authenticationName, push, diff --git a/server/utils/user.ts b/server/utils/user.ts index 4cae9b2..2ae7be9 100644 --- a/server/utils/user.ts +++ b/server/utils/user.ts @@ -3,7 +3,7 @@ SPDX-License-Identifier: AGPL-3.0-or-later */ import type { ServerUser } from "~/server/database" -import type { ApiTombstone, ApiUser, ApiUserDetails } from "~/shared/types/api"; +import type { ApiAccount, ApiTombstone, ApiUser, ApiUserDetails } from "~/shared/types/api"; export function serverUserToApi(user: ServerUser): ApiUser | ApiTombstone { if (user.deleted) { @@ -38,3 +38,19 @@ export function serverUserToApiDetails(user: ServerUser): ApiUserDetails | ApiTo locale: user.locale, } } + +export function serverUserToApiAccount(user?: ServerUser): ApiAccount | undefined { + if (!user || user.deleted) { + return undefined; + } + return { + id: user.id, + updatedAt: user.updatedAt, + type: user.type, + name: user.name, + interestedEventIds: user.interestedEventIds, + interestedEventSlotIds: user.interestedEventSlotIds, + timezone: user.timezone, + locale: user.locale, + } +}