start adding page validation

This commit is contained in:
kim 2025-03-23 14:18:24 +00:00
commit 4e80d0bf79
5 changed files with 80 additions and 84 deletions

View file

@ -1,3 +1,20 @@
// 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 timeline
import (
@ -5,15 +22,21 @@ import (
"github.com/superseriousbusiness/gotosocial/internal/paging"
)
// nextPageParams gets the next set of paging
// parameters to use based on the current set,
// and the next set of lo / hi values. This will
// correctly handle making sure that, depending
// on the paging order, the cursor value gets
// updated while maintaining the boundary value.
func nextPageParams(
curLo, curHi string, // current page params
nextLo, nextHi string, // next lo / hi values
curLo, curHi string,
nextLo, nextHi string,
order paging.Order,
) (lo string, hi string) {
if order.Ascending() {
return nextLo, curHi
} else /* i.e. descending */ {
return curLo, nextHi
}
}