summaryrefslogtreecommitdiff
path: root/internal/cache/invalidate.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/cache/invalidate.go')
-rw-r--r--internal/cache/invalidate.go14
1 files changed, 14 insertions, 0 deletions
diff --git a/internal/cache/invalidate.go b/internal/cache/invalidate.go
index ca12e412c..9b42e88f6 100644
--- a/internal/cache/invalidate.go
+++ b/internal/cache/invalidate.go
@@ -19,6 +19,7 @@ package cache
import (
"github.com/superseriousbusiness/gotosocial/internal/gtsmodel"
+ "github.com/superseriousbusiness/gotosocial/internal/util"
)
// Below are cache invalidation hooks between other caches,
@@ -178,6 +179,11 @@ func (c *Caches) OnInvalidateFollowRequest(followReq *gtsmodel.FollowRequest) {
)
}
+func (c *Caches) OnInvalidateInstance(instance *gtsmodel.Instance) {
+ // Invalidate the local domains count.
+ c.DB.LocalInstance.Domains.Store(nil)
+}
+
func (c *Caches) OnInvalidateList(list *gtsmodel.List) {
// Invalidate list IDs cache.
c.DB.ListIDs.Invalidate(
@@ -255,6 +261,11 @@ func (c *Caches) OnInvalidateStatus(status *gtsmodel.Status) {
// Invalidate cache of attached poll ID.
c.DB.Poll.Invalidate("ID", status.PollID)
}
+
+ if util.PtrOrZero(status.Local) {
+ // Invalidate the local statuses count.
+ c.DB.LocalInstance.Statuses.Store(nil)
+ }
}
func (c *Caches) OnInvalidateStatusBookmark(bookmark *gtsmodel.StatusBookmark) {
@@ -271,6 +282,9 @@ func (c *Caches) OnInvalidateUser(user *gtsmodel.User) {
// Invalidate local account ID cached visibility.
c.Visibility.Invalidate("ItemID", user.AccountID)
c.Visibility.Invalidate("RequesterID", user.AccountID)
+
+ // Invalidate the local users count.
+ c.DB.LocalInstance.Users.Store(nil)
}
func (c *Caches) OnInvalidateUserMute(mute *gtsmodel.UserMute) {