this repo has no description
1package main 2 3import ( 4 "github.com/bluesky-social/indigo/api/atproto" 5 "github.com/bluesky-social/indigo/api/bsky" 6 "github.com/bluesky-social/indigo/atproto/syntax" 7 "github.com/bluesky-social/indigo/lex/util" 8 "github.com/bluesky-social/indigo/xrpc" 9 "github.com/labstack/echo-contrib/session" 10 "github.com/labstack/echo/v4" 11) 12 13func (s *TestServer) handleMakePost(e echo.Context) error { 14 sess, err := session.Get("session", e) 15 if err != nil { 16 return err 17 } 18 19 did, ok := sess.Values["did"] 20 if !ok { 21 return e.Redirect(302, "/login") 22 } 23 24 var oauthSession OauthSession 25 if err := s.db.Raw("SELECT * FROM oauth_sessions WHERE did = ?", did).Scan(&oauthSession).Error; err != nil { 26 return err 27 } 28 29 args, err := authedReqArgsFromSession(&oauthSession) 30 if err != nil { 31 return err 32 } 33 34 post := bsky.FeedPost{ 35 Text: "hello from atproto golang oauth client", 36 CreatedAt: syntax.DatetimeNow().String(), 37 } 38 39 input := atproto.RepoCreateRecord_Input{ 40 Collection: "app.bsky.feed.post", 41 Repo: oauthSession.Did, 42 Record: &util.LexiconTypeDecoder{Val: &post}, 43 } 44 45 var out atproto.RepoCreateRecord_Output 46 if err := s.xrpcCli.Do(e.Request().Context(), args, xrpc.Procedure, "application/json", "com.atproto.repo.createRecord", nil, input, &out); err != nil { 47 return err 48 } 49 50 return e.File(getFilePath("make-post.html")) 51}