From 7df170939f2bad0f03b834dda5af1b55bd0d6830 Mon Sep 17 00:00:00 2001 From: Michael Muré Date: Wed, 4 Sep 2019 21:04:05 +0200 Subject: graphql: make repository.validLabels a connection --- graphql/resolvers/repo.go | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) (limited to 'graphql/resolvers/repo.go') 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) } -- cgit