diff options
author | Michael Muré <batolettre@gmail.com> | 2019-06-16 21:29:49 +0200 |
---|---|---|
committer | Michael Muré <batolettre@gmail.com> | 2019-06-16 21:29:49 +0200 |
commit | b2f8572c4493205535558fb9320689aaf4774dc1 (patch) | |
tree | 021ed8eef1bb57c73ca595c3e79706cf215d6eee /graphql/resolvers/label.go | |
parent | 08c0e18ade5241d124fc8a3424b7612174e82cef (diff) | |
download | git-bug-b2f8572c4493205535558fb9320689aaf4774dc1.tar.gz |
graphql: change mutations to respect the Relay specification
https://facebook.github.io/relay/graphql/mutations.htm
This specification also allow to expose a mutationId for fire and forget,
as well as the created operation.
Diffstat (limited to 'graphql/resolvers/label.go')
-rw-r--r-- | graphql/resolvers/label.go | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/graphql/resolvers/label.go b/graphql/resolvers/label.go index 7619f748..690bf7f6 100644 --- a/graphql/resolvers/label.go +++ b/graphql/resolvers/label.go @@ -2,10 +2,12 @@ package resolvers import ( "context" + "fmt" "image/color" "github.com/MichaelMure/git-bug/bug" "github.com/MichaelMure/git-bug/graphql/graph" + "github.com/MichaelMure/git-bug/graphql/models" ) var _ graph.LabelResolver = &labelResolver{} @@ -20,3 +22,24 @@ func (labelResolver) Color(ctx context.Context, obj *bug.Label) (*color.RGBA, er rgba := obj.RGBA() return &rgba, nil } + +var _ graph.LabelChangeResultResolver = &labelChangeResultResolver{} + +type labelChangeResultResolver struct{} + +func (labelChangeResultResolver) Status(ctx context.Context, obj *bug.LabelChangeResult) (models.LabelChangeStatus, error) { + switch obj.Status { + case bug.LabelChangeAdded: + return models.LabelChangeStatusAdded, nil + case bug.LabelChangeRemoved: + return models.LabelChangeStatusRemoved, nil + case bug.LabelChangeDuplicateInOp: + return models.LabelChangeStatusDuplicateInOp, nil + case bug.LabelChangeAlreadySet: + return models.LabelChangeStatusAlreadyExist, nil + case bug.LabelChangeDoesntExist: + return models.LabelChangeStatusDoesntExist, nil + } + + return "", fmt.Errorf("unknown status") +} |