diff options
author | 2023-09-12 14:00:35 +0100 | |
---|---|---|
committer | 2023-09-12 14:00:35 +0100 | |
commit | 7293d6029b43db693fd170c0c087394339da0677 (patch) | |
tree | 09063243faf1b178fde35973486e311f66b1ca33 /internal/processing/blocks.go | |
parent | [feature] Allow admins to expire remote public keys; refetch expired keys on ... (diff) | |
download | gotosocial-7293d6029b43db693fd170c0c087394339da0677.tar.xz |
[feature] add paging to account follows, followers and follow requests endpoints (#2186)
Diffstat (limited to 'internal/processing/blocks.go')
-rw-r--r-- | internal/processing/blocks.go | 86 |
1 files changed, 0 insertions, 86 deletions
diff --git a/internal/processing/blocks.go b/internal/processing/blocks.go deleted file mode 100644 index 014b6af21..000000000 --- a/internal/processing/blocks.go +++ /dev/null @@ -1,86 +0,0 @@ -// GoToSocial -// Copyright (C) GoToSocial Authors admin@gotosocial.org -// SPDX-License-Identifier: AGPL-3.0-or-later -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see <http://www.gnu.org/licenses/>. - -package processing - -import ( - "context" - "errors" - - apimodel "github.com/superseriousbusiness/gotosocial/internal/api/model" - "github.com/superseriousbusiness/gotosocial/internal/db" - "github.com/superseriousbusiness/gotosocial/internal/gtserror" - "github.com/superseriousbusiness/gotosocial/internal/gtsmodel" - "github.com/superseriousbusiness/gotosocial/internal/log" - "github.com/superseriousbusiness/gotosocial/internal/paging" - "github.com/superseriousbusiness/gotosocial/internal/util" -) - -// BlocksGet ... -func (p *Processor) BlocksGet( - ctx context.Context, - requestingAccount *gtsmodel.Account, - page *paging.Page, -) (*apimodel.PageableResponse, gtserror.WithCode) { - blocks, err := p.state.DB.GetAccountBlocks(ctx, - requestingAccount.ID, - page, - ) - if err != nil && !errors.Is(err, db.ErrNoEntries) { - return nil, gtserror.NewErrorInternalError(err) - } - - // Check for zero length. - count := len(blocks) - if len(blocks) == 0 { - return util.EmptyPageableResponse(), nil - } - - var ( - items = make([]interface{}, 0, count) - - // Set next + prev values before API converting - // so the caller can still page even on error. - nextMaxIDValue = blocks[count-1].ID - prevMinIDValue = blocks[0].ID - ) - - for _, block := range blocks { - if block.TargetAccount == nil { - // All models should be populated at this point. - log.Warnf(ctx, "block target account was nil: %v", err) - continue - } - - // Convert target account to frontend API model. - account, err := p.tc.AccountToAPIAccountBlocked(ctx, block.TargetAccount) - if err != nil { - log.Errorf(ctx, "error converting account to public api account: %v", err) - continue - } - - // Append target to return items. - items = append(items, account) - } - - return paging.PackageResponse(paging.ResponseParams{ - Items: items, - Path: "/api/v1/blocks", - Next: page.Next(nextMaxIDValue), - Prev: page.Prev(prevMinIDValue), - }), nil -} |