From 832befd727a257581d774bb6bbdeb0f81cd658e2 Mon Sep 17 00:00:00 2001 From: tobi <31960611+tsmethurst@users.noreply.github.com> Date: Mon, 10 Oct 2022 15:52:49 +0200 Subject: [chore] Make paging logic more generic (#901) * make paging logic more generic not just for timelines! * linty linterson --- internal/api/model/paging.go | 28 ++++++++++++++++++++++++++++ internal/api/model/timeline.go | 30 ------------------------------ 2 files changed, 28 insertions(+), 30 deletions(-) create mode 100644 internal/api/model/paging.go delete mode 100644 internal/api/model/timeline.go (limited to 'internal/api') diff --git a/internal/api/model/paging.go b/internal/api/model/paging.go new file mode 100644 index 000000000..195f318c8 --- /dev/null +++ b/internal/api/model/paging.go @@ -0,0 +1,28 @@ +/* + GoToSocial + Copyright (C) 2021-2022 GoToSocial Authors admin@gotosocial.org + + 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 . +*/ + +package model + +// PageableResponse wraps a slice of items, ready to be serialized, along with the Link +// header for the previous and next queries / pages, to be returned to the client. +type PageableResponse struct { + Items []interface{} + LinkHeader string + NextLink string + PrevLink string +} diff --git a/internal/api/model/timeline.go b/internal/api/model/timeline.go deleted file mode 100644 index 4c9c78a88..000000000 --- a/internal/api/model/timeline.go +++ /dev/null @@ -1,30 +0,0 @@ -/* - GoToSocial - Copyright (C) 2021-2022 GoToSocial Authors admin@gotosocial.org - - 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 . -*/ - -package model - -import "github.com/superseriousbusiness/gotosocial/internal/timeline" - -// TimelineResponse wraps a slice of timelineables, ready to be serialized, along with the Link -// header for the previous and next queries, to be returned to the client. -type TimelineResponse struct { - Items []timeline.Timelineable - LinkHeader string - NextLink string - PrevLink string -} -- cgit v1.2.3