|
@@ -1,30 +0,0 @@
|
|
-package helper
|
|
|
|
-
|
|
|
|
-import (
|
|
|
|
- "github.com/gshopify/service-wrapper/interfaces"
|
|
|
|
- "github.com/gshopify/service-wrapper/model"
|
|
|
|
- "gshopper.com/gshopify/products/graphql/generated"
|
|
|
|
-)
|
|
|
|
-
|
|
|
|
-func NewPageInfo[T interfaces.Node](src []T, namespace model.Gid, first T, last T) *generated.PageInfo {
|
|
|
|
- var (
|
|
|
|
- size = len(src)
|
|
|
|
- info = &generated.PageInfo{}
|
|
|
|
- )
|
|
|
|
-
|
|
|
|
- if size == 0 {
|
|
|
|
- return info
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if c, err := model.NewSimpleCursor(src[0].GetID(), namespace); err == nil {
|
|
|
|
- info.StartCursor = c.String()
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if c, err := model.NewSimpleCursor(src[size-1].GetID(), namespace); err == nil {
|
|
|
|
- info.EndCursor = c.String()
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- info.HasPreviousPage = first.GetID() != src[0].GetID()
|
|
|
|
- info.HasNextPage = info.StartCursor == info.EndCursor || last.GetID() != src[size-1].GetID()
|
|
|
|
- return info
|
|
|
|
-}
|
|
|