From 8275d70e38579128f0680ee4001a944907a3772a Mon Sep 17 00:00:00 2001 From: kim <89579420+NyaaaWhatsUpDoc@users.noreply.github.com> Date: Tue, 9 May 2023 15:17:43 +0100 Subject: [bugfix] update go-cache version to support multi-keying (#1756) * update go-cache version to support multi-keying Signed-off-by: kim * improved cache invalidation Signed-off-by: kim --------- Signed-off-by: kim --- internal/db/bundb/relationship_follow_req.go | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) (limited to 'internal/db/bundb/relationship_follow_req.go') diff --git a/internal/db/bundb/relationship_follow_req.go b/internal/db/bundb/relationship_follow_req.go index 4a6ec1ab8..c0f4bce3b 100644 --- a/internal/db/bundb/relationship_follow_req.go +++ b/internal/db/bundb/relationship_follow_req.go @@ -208,14 +208,17 @@ func (r *relationshipDB) AcceptFollowRequest(ctx context.Context, sourceAccountI Notify: followReq.Notify, } - // If the follow already exists, just - // replace the URI with the new one. - if _, err := r.conn. - NewInsert(). - Model(follow). - On("CONFLICT (?,?) DO UPDATE set ? = ?", bun.Ident("account_id"), bun.Ident("target_account_id"), bun.Ident("uri"), follow.URI). - Exec(ctx); err != nil { - return nil, r.conn.ProcessError(err) + if err := r.state.Caches.GTS.Follow().Store(follow, func() error { + // If the follow already exists, just + // replace the URI with the new one. + _, err := r.conn. + NewInsert(). + Model(follow). + On("CONFLICT (?,?) DO UPDATE set ? = ?", bun.Ident("account_id"), bun.Ident("target_account_id"), bun.Ident("uri"), follow.URI). + Exec(ctx) + return r.conn.ProcessError(err) + }); err != nil { + return nil, err } // Delete original follow request. @@ -227,8 +230,7 @@ func (r *relationshipDB) AcceptFollowRequest(ctx context.Context, sourceAccountI return nil, r.conn.ProcessError(err) } - // Invalidate follow request from cache lookups; this will - // invalidate the follow as well via the invalidate hook. + // Invalidate follow request from cache lookups r.state.Caches.GTS.FollowRequest().Invalidate("ID", followReq.ID) // Delete original follow request notification -- cgit v1.2.3