From 8a3a1fc3e9be24e8cce58526f02b5b8f7d9482cd Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Mon, 3 Mar 2025 01:04:44 +0000 Subject: [PATCH] move code to hydrate.ts --- packages/appview/src/lib/hydrate.ts | 23 ++++++++++++++++++++++- packages/appview/src/routes.ts | 15 ++------------- 2 files changed, 24 insertions(+), 14 deletions(-) diff --git a/packages/appview/src/lib/hydrate.ts b/packages/appview/src/lib/hydrate.ts index 6153af2..5693df5 100644 --- a/packages/appview/src/lib/hydrate.ts +++ b/packages/appview/src/lib/hydrate.ts @@ -1,4 +1,8 @@ -import { XyzStatusphereDefs } from '@statusphere/lexicon' +import { + AppBskyActorDefs, + AppBskyActorProfile, + XyzStatusphereDefs, +} from '@statusphere/lexicon' import { Status } from '#/db' import { AppContext } from '#/index' @@ -19,3 +23,20 @@ export async function statusToStatusView( }, } } + +export async function bskyProfileToProfileView( + did: string, + profile: AppBskyActorProfile.Record, + ctx: AppContext, +): Promise { + return { + $type: 'app.bsky.actor.defs#profileView', + did: did, + handle: await ctx.resolver.resolveDidToHandle(did), + avatar: profile.avatar + ? `https://atproto.pictures/img/${did}/${profile.avatar.ref}` + : undefined, + displayName: profile.displayName, + createdAt: profile.createdAt, + } +} diff --git a/packages/appview/src/routes.ts b/packages/appview/src/routes.ts index ac49dfd..34cd00a 100644 --- a/packages/appview/src/routes.ts +++ b/packages/appview/src/routes.ts @@ -13,7 +13,7 @@ import { getIronSession, SessionOptions } from 'iron-session' import type { AppContext } from '#/index' import { env } from '#/lib/env' -import { statusToStatusView } from '#/lib/hydrate' +import { bskyProfileToProfileView, statusToStatusView } from '#/lib/hydrate' type Session = { did: string } @@ -222,17 +222,6 @@ export const createRouter = (ctx: AppContext) => { } } - const profileView: AppBskyActorDefs.ProfileView = { - $type: 'app.bsky.actor.defs#profileView', - did: did, - handle: await ctx.resolver.resolveDidToHandle(did), - avatar: profile.avatar - ? `https://atproto.pictures/img/${did}/${profile.avatar.ref}` - : undefined, - displayName: profile.displayName, - createdAt: profile.createdAt, - } - // Fetch user status const status = await ctx.db .selectFrom('status') @@ -243,7 +232,7 @@ export const createRouter = (ctx: AppContext) => { res.json({ did: agent.assertDid, - profile: profileView, + profile: await bskyProfileToProfileView(did, profile, ctx), status: status ? await statusToStatusView(status, ctx) : undefined, }) } catch (err) { -- 2.51.2