Ai
1 Star 0 Fork 0

ryancartoon/sensu-go

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
pagination.go 1.95 KB
一键复制 编辑 原始数据 按行查看 历史
package graphql
import (
"math"
"github.com/sensu/sensu-go/backend/apid/graphql/schema"
"github.com/sensu/sensu-go/graphql"
)
var _ schema.OffsetPageInfoFieldResolvers = (*offsetPageInfoImpl)(nil)
type offsetContainer struct {
Nodes interface{}
PageInfo offsetPageInfo
}
type offsetPageInfo struct {
offset int
limit int
totalCount int
}
func newOffsetContainer(offset, limit int) offsetContainer {
container := offsetContainer{}
container.Nodes = make([]interface{}, 0)
container.PageInfo.offset = offset
container.PageInfo.limit = limit
return container
}
//
// Implement OffsetPageInfoFieldResolvers
//
type offsetPageInfoImpl struct{}
// HasNextPage implements response to request for 'hasNextPage' field.
func (*offsetPageInfoImpl) HasNextPage(p graphql.ResolveParams) (bool, error) {
page := p.Source.(offsetPageInfo)
return (page.offset + page.limit) < page.totalCount, nil
}
// HasPreviousPage implements response to request for 'hasPreviousPage' field.
func (*offsetPageInfoImpl) HasPreviousPage(p graphql.ResolveParams) (bool, error) {
page := p.Source.(offsetPageInfo)
return page.offset > 0, nil
}
// NextOffset implements response to request for 'nextOffset' field.
func (*offsetPageInfoImpl) NextOffset(p graphql.ResolveParams) (int, error) {
page := p.Source.(offsetPageInfo)
nextOffset := page.offset + page.limit
if nextOffset < page.totalCount {
return nextOffset, nil
}
return 0, nil
}
// PreviousOffset implements response to request for 'previousOffset' field.
func (*offsetPageInfoImpl) PreviousOffset(p graphql.ResolveParams) (int, error) {
page := p.Source.(offsetPageInfo)
if page.offset > 0 {
prevOffset := page.offset - page.limit
return clampInt(prevOffset, 0, math.MaxInt32), nil
}
return 0, nil
}
// TotalCount implements response to request for 'totalCount' field.
func (*offsetPageInfoImpl) TotalCount(p graphql.ResolveParams) (int, error) {
page := p.Source.(offsetPageInfo)
return page.totalCount, nil
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/ryancartoon/sensu-go.git
git@gitee.com:ryancartoon/sensu-go.git
ryancartoon
sensu-go
sensu-go
v5.10.1

搜索帮助