From 2b6b9cdf832078980ca668126bce3b4fcfff02a9 Mon Sep 17 00:00:00 2001 From: tobi <31960611+tsmethurst@users.noreply.github.com> Date: Fri, 29 Sep 2023 15:31:10 +0200 Subject: [bugfix] Fix paging for empty items (#2236) * use minID properly for public timeline * return paged response properly even when 0 items * use gtserror * page more consistently (for now) * test * aaa --- internal/processing/admin/report.go | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) (limited to 'internal/processing/admin/report.go') diff --git a/internal/processing/admin/report.go b/internal/processing/admin/report.go index 0f47cf839..32f05719b 100644 --- a/internal/processing/admin/report.go +++ b/internal/processing/admin/report.go @@ -19,6 +19,7 @@ package admin import ( "context" + "errors" "fmt" "strconv" "time" @@ -45,17 +46,20 @@ func (p *Processor) ReportsGet( limit int, ) (*apimodel.PageableResponse, gtserror.WithCode) { reports, err := p.state.DB.GetReports(ctx, resolved, accountID, targetAccountID, maxID, sinceID, minID, limit) - if err != nil { - if err == db.ErrNoEntries { - return util.EmptyPageableResponse(), nil - } + if err != nil && !errors.Is(err, db.ErrNoEntries) { return nil, gtserror.NewErrorInternalError(err) } count := len(reports) - items := make([]interface{}, 0, count) - nextMaxIDValue := reports[count-1].ID - prevMinIDValue := reports[0].ID + if count == 0 { + return util.EmptyPageableResponse(), nil + } + + var ( + items = make([]interface{}, 0, count) + nextMaxIDValue = reports[count-1].ID + prevMinIDValue = reports[0].ID + ) for _, r := range reports { item, err := p.converter.ReportToAdminAPIReport(ctx, r, account) @@ -65,7 +69,7 @@ func (p *Processor) ReportsGet( items = append(items, item) } - extraQueryParams := []string{} + extraQueryParams := make([]string, 0, 3) if resolved != nil { extraQueryParams = append(extraQueryParams, "resolved="+strconv.FormatBool(*resolved)) } -- cgit v1.2.3