summaryrefslogtreecommitdiff
path: root/internal/visibility/status.go
diff options
context:
space:
mode:
authorLibravatar kim <89579420+NyaaaWhatsUpDoc@users.noreply.github.com>2023-04-06 16:11:25 +0100
committerLibravatar GitHub <noreply@github.com>2023-04-06 17:11:25 +0200
commite46323c207230b01e48ae1b8e5117a9774d9f157 (patch)
tree088c9476dd4650092b916394364582ee64a7b328 /internal/visibility/status.go
parent[bugfix/chore] Refactor timeline code (#1656) (diff)
downloadgotosocial-e46323c207230b01e48ae1b8e5117a9774d9f157.tar.xz
[bugfix] visibility caching and hometimeline (#1675)v0.8.0-rc1
* fix visibility caching to use correct type key Signed-off-by: kim <grufwub@gmail.com> * check for ID check > max possible ID Signed-off-by: kim <grufwub@gmail.com> * update home timeline code to include relevant threads to owner (e.g. between mutuals/follows) Signed-off-by: kim <grufwub@gmail.com> --------- Signed-off-by: kim <grufwub@gmail.com>
Diffstat (limited to 'internal/visibility/status.go')
-rw-r--r--internal/visibility/status.go12
1 files changed, 7 insertions, 5 deletions
diff --git a/internal/visibility/status.go b/internal/visibility/status.go
index dc8261624..d41bbc80b 100644
--- a/internal/visibility/status.go
+++ b/internal/visibility/status.go
@@ -49,6 +49,8 @@ func (f *Filter) StatusesVisible(ctx context.Context, requester *gtsmodel.Accoun
// StatusVisible will check if given status is visible to requester, accounting for requester with no auth (i.e is nil), suspensions, disabled local users, account blocks and status privacy.
func (f *Filter) StatusVisible(ctx context.Context, requester *gtsmodel.Account, status *gtsmodel.Status) (bool, error) {
+ const vtype = cache.VisibilityTypeStatus
+
// By default we assume no auth.
requesterID := noauth
@@ -68,10 +70,10 @@ func (f *Filter) StatusVisible(ctx context.Context, requester *gtsmodel.Account,
return &cache.CachedVisibility{
ItemID: status.ID,
RequesterID: requesterID,
- Type: cache.VisibilityTypeStatus,
+ Type: vtype,
Value: visible,
}, nil
- }, "status", requesterID, status.ID)
+ }, vtype, requesterID, status.ID)
if err != nil {
return false, err
}
@@ -83,7 +85,7 @@ func (f *Filter) StatusVisible(ctx context.Context, requester *gtsmodel.Account,
func (f *Filter) isStatusVisible(ctx context.Context, requester *gtsmodel.Account, status *gtsmodel.Status) (bool, error) {
// Ensure that status is fully populated for further processing.
if err := f.state.DB.PopulateStatus(ctx, status); err != nil {
- return false, err
+ return false, fmt.Errorf("isStatusVisible: error populating status %s: %w", status.ID, err)
}
// Check whether status accounts are visible to the requester.
@@ -185,7 +187,7 @@ func (f *Filter) areStatusAccountsVisible(ctx context.Context, requester *gtsmod
// Check whether status author's account is visible to requester.
visible, err := f.AccountVisible(ctx, requester, status.Account)
if err != nil {
- return false, err
+ return false, fmt.Errorf("error checking status author visibility: %w", err)
}
if !visible {
@@ -204,7 +206,7 @@ func (f *Filter) areStatusAccountsVisible(ctx context.Context, requester *gtsmod
// Check whether boosted status author's account is visible to requester.
visible, err := f.AccountVisible(ctx, requester, status.BoostOfAccount)
if err != nil {
- return false, err
+ return false, fmt.Errorf("error checking boosted author visibility: %w", err)
}
if !visible {