Transform the account field in sessions
When serving sessions instead of passing the ServerUser directly, convert it to the ApiAccount format.
This commit is contained in:
parent
37edf122a1
commit
adeef4f629
2 changed files with 19 additions and 2 deletions
|
@ -15,6 +15,7 @@ import {
|
||||||
} from "~/server/database";
|
} from "~/server/database";
|
||||||
import { broadcastEvent } from "../streams";
|
import { broadcastEvent } from "../streams";
|
||||||
import type { ApiAuthenticationProvider, ApiSession } from "~/shared/types/api";
|
import type { ApiAuthenticationProvider, ApiSession } from "~/shared/types/api";
|
||||||
|
import { serverUserToApiAccount } from "./user";
|
||||||
|
|
||||||
async function removeSessionSubscription(sessionId: number) {
|
async function removeSessionSubscription(sessionId: number) {
|
||||||
const subscriptions = await readSubscriptions();
|
const subscriptions = await readSubscriptions();
|
||||||
|
@ -182,7 +183,7 @@ export async function serverSessionToApi(event: H3Event, session: ServerSession)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
id: session.id,
|
id: session.id,
|
||||||
account,
|
account: serverUserToApiAccount(account),
|
||||||
authenticationProvider: session.authenticationProvider,
|
authenticationProvider: session.authenticationProvider,
|
||||||
authenticationName: session.authenticationName,
|
authenticationName: session.authenticationName,
|
||||||
push,
|
push,
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
*/
|
*/
|
||||||
import type { ServerUser } from "~/server/database"
|
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 {
|
export function serverUserToApi(user: ServerUser): ApiUser | ApiTombstone {
|
||||||
if (user.deleted) {
|
if (user.deleted) {
|
||||||
|
@ -38,3 +38,19 @@ export function serverUserToApiDetails(user: ServerUser): ApiUserDetails | ApiTo
|
||||||
locale: user.locale,
|
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,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue