From 45f4afe60e29e147e3adfaa4d7b66ca58e22b1de Mon Sep 17 00:00:00 2001 From: Vyr Cossont Date: Mon, 6 May 2024 04:49:08 -0700 Subject: feature: filters v2 server-side warning/hiding (#2793) * Remove dead code * Filter statuses when converting to frontend representation * status.filtered is an array * Make matching case-insensitive * Remove TODOs that don't need to be done now * Add missing filter check for notification * lint: rename ErrHideStatus * APIFilterActionToFilterAction not used yet * swaggerino docseroni * Address review comments * Add apimodel.FilterActionNone --------- Co-authored-by: tobi <31960611+tsmethurst@users.noreply.github.com> Co-authored-by: tobi --- internal/processing/timeline/notification.go | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'internal/processing/timeline/notification.go') diff --git a/internal/processing/timeline/notification.go b/internal/processing/timeline/notification.go index 42f708999..f99664d62 100644 --- a/internal/processing/timeline/notification.go +++ b/internal/processing/timeline/notification.go @@ -43,6 +43,12 @@ func (p *Processor) NotificationsGet(ctx context.Context, authed *oauth.Auth, ma return util.EmptyPageableResponse(), nil } + filters, err := p.state.DB.GetFiltersForAccountID(ctx, authed.Account.ID) + if err != nil { + err = gtserror.Newf("couldn't retrieve filters for account %s: %w", authed.Account.ID, err) + return nil, gtserror.NewErrorInternalError(err) + } + var ( items = make([]interface{}, 0, count) nextMaxIDValue string @@ -70,7 +76,7 @@ func (p *Processor) NotificationsGet(ctx context.Context, authed *oauth.Auth, ma continue } - item, err := p.converter.NotificationToAPINotification(ctx, n) + item, err := p.converter.NotificationToAPINotification(ctx, n, filters) if err != nil { log.Debugf(ctx, "skipping notification %s because it couldn't be converted to its api representation: %s", n.ID, err) continue @@ -104,7 +110,13 @@ func (p *Processor) NotificationGet(ctx context.Context, account *gtsmodel.Accou return nil, gtserror.NewErrorNotFound(err) } - apiNotif, err := p.converter.NotificationToAPINotification(ctx, notif) + filters, err := p.state.DB.GetFiltersForAccountID(ctx, account.ID) + if err != nil { + err = gtserror.Newf("couldn't retrieve filters for account %s: %w", account.ID, err) + return nil, gtserror.NewErrorInternalError(err) + } + + apiNotif, err := p.converter.NotificationToAPINotification(ctx, notif, filters) if err != nil { if errors.Is(err, db.ErrNoEntries) { return nil, gtserror.NewErrorNotFound(err) -- cgit v1.2.3