···9 comatproto "github.com/bluesky-social/indigo/api/atproto"
10 lexutil "github.com/bluesky-social/indigo/lex/util"
11 tangled "github.com/sotangled/tangled/api/tangled"
012)
1314func (s *State) Follow(w http.ResponseWriter, r *http.Request) {
···51 return
52 }
5354- err = s.db.AddFollow(currentUser.Did, subjectIdent.DID.String(), rkey)
55 if err != nil {
56 log.Println("failed to follow", err)
57 return
···73 return
74 case http.MethodDelete:
75 // find the record in the db
76- follow, err := s.db.GetFollow(currentUser.Did, subjectIdent.DID.String())
77 if err != nil {
78 log.Println("failed to get follow relationship")
79 return
···90 return
91 }
9293- err = s.db.DeleteFollow(currentUser.Did, subjectIdent.DID.String())
94 if err != nil {
95 log.Println("failed to delete follow from DB")
96 // this is not an issue, the firehose event might have already done this
···9 comatproto "github.com/bluesky-social/indigo/api/atproto"
10 lexutil "github.com/bluesky-social/indigo/lex/util"
11 tangled "github.com/sotangled/tangled/api/tangled"
12+ "github.com/sotangled/tangled/appview/db"
13)
1415func (s *State) Follow(w http.ResponseWriter, r *http.Request) {
···52 return
53 }
5455+ err = db.AddFollow(s.db, currentUser.Did, subjectIdent.DID.String(), rkey)
56 if err != nil {
57 log.Println("failed to follow", err)
58 return
···74 return
75 case http.MethodDelete:
76 // find the record in the db
77+ follow, err := db.GetFollow(s.db, currentUser.Did, subjectIdent.DID.String())
78 if err != nil {
79 log.Println("failed to get follow relationship")
80 return
···91 return
92 }
9394+ err = db.DeleteFollow(s.db, currentUser.Did, subjectIdent.DID.String())
95 if err != nil {
96 log.Println("failed to delete follow from DB")
97 // this is not an issue, the firehose event might have already done this
+3-3
appview/state/jetstream.go
···1314type Ingester func(ctx context.Context, e *models.Event) error
1516-func jetstreamIngester(db *db.DB) Ingester {
17 return func(ctx context.Context, e *models.Event) error {
18 var err error
19 defer func() {
20 eventTime := e.TimeUS
21 lastTimeUs := eventTime + 1
22- if err := db.UpdateLastTimeUs(lastTimeUs); err != nil {
23 err = fmt.Errorf("(deferred) failed to save last time us: %w", err)
24 }
25 }()
···39 log.Println("invalid record")
40 return err
41 }
42- err = db.AddFollow(did, record.Subject, e.Commit.RKey)
43 if err != nil {
44 return fmt.Errorf("failed to add follow to db: %w", err)
45 }
···1314type Ingester func(ctx context.Context, e *models.Event) error
1516+func jetstreamIngester(d db.DbWrapper) Ingester {
17 return func(ctx context.Context, e *models.Event) error {
18 var err error
19 defer func() {
20 eventTime := e.TimeUS
21 lastTimeUs := eventTime + 1
22+ if err := d.UpdateLastTimeUs(lastTimeUs); err != nil {
23 err = fmt.Errorf("(deferred) failed to save last time us: %w", err)
24 }
25 }()
···39 log.Println("invalid record")
40 return err
41 }
42+ err = db.AddFollow(d, did, record.Subject, e.Commit.RKey)
43 if err != nil {
44 return fmt.Errorf("failed to add follow to db: %w", err)
45 }
+2-1
appview/state/middleware.go
···13 "github.com/go-chi/chi/v5"
14 "github.com/sotangled/tangled/appview"
15 "github.com/sotangled/tangled/appview/auth"
016)
1718type Middleware func(http.Handler) http.Handler
···176 return
177 }
178179- repo, err := s.db.GetRepo(id.DID.String(), repoName)
180 if err != nil {
181 // invalid did or handle
182 log.Println("failed to resolve repo")