this repo has no description
1package main
2
3import (
4 "github.com/bluesky-social/indigo/api/bsky"
5 "github.com/bluesky-social/indigo/xrpc"
6 "github.com/labstack/echo-contrib/session"
7 "github.com/labstack/echo/v4"
8)
9
10func (s *TestServer) handleProfile(e echo.Context) error {
11 sess, err := session.Get("session", e)
12 if err != nil {
13 return err
14 }
15
16 did, ok := sess.Values["did"]
17 if !ok {
18 return e.Redirect(302, "/login")
19 }
20
21 var oauthSession OauthSession
22 if err := s.db.Raw("SELECT * FROM oauth_sessions WHERE did = ?", did).Scan(&oauthSession).Error; err != nil {
23 return err
24 }
25
26 args, err := authedReqArgsFromSession(&oauthSession)
27 if err != nil {
28 return err
29 }
30
31 var out bsky.ActorDefs_ProfileViewDetailed
32 if err := s.xrpcCli.Do(e.Request().Context(), args, xrpc.Query, "", "app.bsky.actor.getProfile", map[string]any{"actor": oauthSession.Did}, nil, &out); err != nil {
33 return err
34 }
35
36 var dn string
37 if out.DisplayName != nil {
38 dn = *out.DisplayName
39 }
40
41 var desc string
42 if out.Description != nil {
43 desc = *out.Description
44 }
45
46 return e.Render(200, "profile.html", map[any]any{
47 "DisplayName": dn,
48 "Description": desc,
49 "Handle": out.Handle,
50 })
51}