diff options
author | Michael Muré <batolettre@gmail.com> | 2018-08-15 14:53:50 +0200 |
---|---|---|
committer | Michael Muré <batolettre@gmail.com> | 2018-08-15 14:53:50 +0200 |
commit | bc1fb34c24e985b7a9d50c559d7a42726a3a2007 (patch) | |
tree | 2cfc71c61d8dd491462ec77ab8826e50c1728181 /graphql/connections/connection_template.go | |
parent | 5c568a362b73cf163b06bc7371982f9a7ceaaf29 (diff) | |
download | git-bug-bc1fb34c24e985b7a9d50c559d7a42726a3a2007.tar.gz |
graphql: fix two bugs in the connection code
1) totalCount was incorrect when not in the first page
2) pageInfo.Has{Previous,Next}Page was incorrect when using before or after
Diffstat (limited to 'graphql/connections/connection_template.go')
-rw-r--r-- | graphql/connections/connection_template.go | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/graphql/connections/connection_template.go b/graphql/connections/connection_template.go index 523141cd..e20375b8 100644 --- a/graphql/connections/connection_template.go +++ b/graphql/connections/connection_template.go @@ -33,6 +33,7 @@ func NodeTypeCon(source []NodeType, edgeMaker NodeTypeEdgeMaker, conMaker NodeTy var edges []EdgeType var cursors []string var pageInfo models.PageInfo + var totalCount = len(source) emptyCon, _ := conMaker(edges, nodes, pageInfo, 0) @@ -45,6 +46,7 @@ func NodeTypeCon(source []NodeType, edgeMaker NodeTypeEdgeMaker, conMaker NodeTy // remove all previous element including the "after" one source = source[i+1:] offset = i + 1 + pageInfo.HasPreviousPage = true break } } @@ -56,6 +58,7 @@ func NodeTypeCon(source []NodeType, edgeMaker NodeTypeEdgeMaker, conMaker NodeTy if edge.GetCursor() == *input.Before { // remove all after element including the "before" one + pageInfo.HasNextPage = true break } @@ -109,5 +112,5 @@ func NodeTypeCon(source []NodeType, edgeMaker NodeTypeEdgeMaker, conMaker NodeTy pageInfo.EndCursor = cursors[len(cursors)-1] } - return conMaker(edges, nodes, pageInfo, len(source)) + return conMaker(edges, nodes, pageInfo, totalCount) } |