aboutsummaryrefslogtreecommitdiffstats
path: root/graphql/connections
diff options
context:
space:
mode:
authorMichael Muré <batolettre@gmail.com>2018-08-15 14:53:50 +0200
committerMichael Muré <batolettre@gmail.com>2018-08-15 14:53:50 +0200
commitbc1fb34c24e985b7a9d50c559d7a42726a3a2007 (patch)
tree2cfc71c61d8dd491462ec77ab8826e50c1728181 /graphql/connections
parent5c568a362b73cf163b06bc7371982f9a7ceaaf29 (diff)
downloadgit-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')
-rw-r--r--graphql/connections/connection_template.go5
-rw-r--r--graphql/connections/gen_bug.go5
-rw-r--r--graphql/connections/gen_comment.go5
-rw-r--r--graphql/connections/gen_operation.go5
4 files changed, 16 insertions, 4 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)
}
diff --git a/graphql/connections/gen_bug.go b/graphql/connections/gen_bug.go
index fc9de067..000ff109 100644
--- a/graphql/connections/gen_bug.go
+++ b/graphql/connections/gen_bug.go
@@ -27,6 +27,7 @@ func StringCon(source []string, edgeMaker StringEdgeMaker, conMaker StringConMak
var edges []LazyBugEdge
var cursors []string
var pageInfo models.PageInfo
+ var totalCount = len(source)
emptyCon, _ := conMaker(edges, nodes, pageInfo, 0)
@@ -39,6 +40,7 @@ func StringCon(source []string, edgeMaker StringEdgeMaker, conMaker StringConMak
// remove all previous element including the "after" one
source = source[i+1:]
offset = i + 1
+ pageInfo.HasPreviousPage = true
break
}
}
@@ -50,6 +52,7 @@ func StringCon(source []string, edgeMaker StringEdgeMaker, conMaker StringConMak
if edge.GetCursor() == *input.Before {
// remove all after element including the "before" one
+ pageInfo.HasNextPage = true
break
}
@@ -103,5 +106,5 @@ func StringCon(source []string, edgeMaker StringEdgeMaker, conMaker StringConMak
pageInfo.EndCursor = cursors[len(cursors)-1]
}
- return conMaker(edges, nodes, pageInfo, len(source))
+ return conMaker(edges, nodes, pageInfo, totalCount)
}
diff --git a/graphql/connections/gen_comment.go b/graphql/connections/gen_comment.go
index 223b25e8..5c8b0eea 100644
--- a/graphql/connections/gen_comment.go
+++ b/graphql/connections/gen_comment.go
@@ -28,6 +28,7 @@ func BugCommentCon(source []bug.Comment, edgeMaker BugCommentEdgeMaker, conMaker
var edges []models.CommentEdge
var cursors []string
var pageInfo models.PageInfo
+ var totalCount = len(source)
emptyCon, _ := conMaker(edges, nodes, pageInfo, 0)
@@ -40,6 +41,7 @@ func BugCommentCon(source []bug.Comment, edgeMaker BugCommentEdgeMaker, conMaker
// remove all previous element including the "after" one
source = source[i+1:]
offset = i + 1
+ pageInfo.HasPreviousPage = true
break
}
}
@@ -51,6 +53,7 @@ func BugCommentCon(source []bug.Comment, edgeMaker BugCommentEdgeMaker, conMaker
if edge.GetCursor() == *input.Before {
// remove all after element including the "before" one
+ pageInfo.HasNextPage = true
break
}
@@ -104,5 +107,5 @@ func BugCommentCon(source []bug.Comment, edgeMaker BugCommentEdgeMaker, conMaker
pageInfo.EndCursor = cursors[len(cursors)-1]
}
- return conMaker(edges, nodes, pageInfo, len(source))
+ return conMaker(edges, nodes, pageInfo, totalCount)
}
diff --git a/graphql/connections/gen_operation.go b/graphql/connections/gen_operation.go
index 4d1015f5..9a1a53b7 100644
--- a/graphql/connections/gen_operation.go
+++ b/graphql/connections/gen_operation.go
@@ -28,6 +28,7 @@ func BugOperationCon(source []bug.Operation, edgeMaker BugOperationEdgeMaker, co
var edges []models.OperationEdge
var cursors []string
var pageInfo models.PageInfo
+ var totalCount = len(source)
emptyCon, _ := conMaker(edges, nodes, pageInfo, 0)
@@ -40,6 +41,7 @@ func BugOperationCon(source []bug.Operation, edgeMaker BugOperationEdgeMaker, co
// remove all previous element including the "after" one
source = source[i+1:]
offset = i + 1
+ pageInfo.HasPreviousPage = true
break
}
}
@@ -51,6 +53,7 @@ func BugOperationCon(source []bug.Operation, edgeMaker BugOperationEdgeMaker, co
if edge.GetCursor() == *input.Before {
// remove all after element including the "before" one
+ pageInfo.HasNextPage = true
break
}
@@ -104,5 +107,5 @@ func BugOperationCon(source []bug.Operation, edgeMaker BugOperationEdgeMaker, co
pageInfo.EndCursor = cursors[len(cursors)-1]
}
- return conMaker(edges, nodes, pageInfo, len(source))
+ return conMaker(edges, nodes, pageInfo, totalCount)
}