diff options
author | Michael Muré <batolettre@gmail.com> | 2019-09-04 21:05:18 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-09-04 21:05:18 +0200 |
commit | 3ad2eeb5d07c14a039e0f0028b84033ff9b2c7db (patch) | |
tree | 84711541f4164f3c2a86e307732cc9e26e3d3618 /graphql/resolvers | |
parent | c4bebed2f2ad1e0ec673bbfbbe445bfad963453a (diff) | |
parent | 7df170939f2bad0f03b834dda5af1b55bd0d6830 (diff) | |
download | git-bug-3ad2eeb5d07c14a039e0f0028b84033ff9b2c7db.tar.gz |
Merge pull request #214 from MichaelMure/label-connection
graphql: make repository.validLabels a connection
Diffstat (limited to 'graphql/resolvers')
-rw-r--r-- | graphql/resolvers/repo.go | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/graphql/resolvers/repo.go b/graphql/resolvers/repo.go index ac9c162f..5a37ae18 100644 --- a/graphql/resolvers/repo.go +++ b/graphql/resolvers/repo.go @@ -159,6 +159,29 @@ func (repoResolver) UserIdentity(ctx context.Context, obj *models.Repository) (i return i.Identity, nil } -func (repoResolver) ValidLabels(ctx context.Context, obj *models.Repository) ([]bug.Label, error) { - return obj.Repo.ValidLabels(), nil +func (resolver repoResolver) ValidLabels(ctx context.Context, obj *models.Repository, after *string, before *string, first *int, last *int) (*models.LabelConnection, error) { + input := models.ConnectionInput{ + Before: before, + After: after, + First: first, + Last: last, + } + + edger := func(label bug.Label, offset int) connections.Edge { + return models.LabelEdge{ + Node: label, + Cursor: connections.OffsetToCursor(offset), + } + } + + conMaker := func(edges []*models.LabelEdge, nodes []bug.Label, info *models.PageInfo, totalCount int) (*models.LabelConnection, error) { + return &models.LabelConnection{ + Edges: edges, + Nodes: nodes, + PageInfo: info, + TotalCount: totalCount, + }, nil + } + + return connections.LabelCon(obj.Repo.ValidLabels(), edger, conMaker, input) } |