aboutsummaryrefslogtreecommitdiffstats
path: root/graphql/resolvers/label.go
diff options
context:
space:
mode:
authorMichael Muré <batolettre@gmail.com>2019-06-16 21:29:49 +0200
committerMichael Muré <batolettre@gmail.com>2019-06-16 21:29:49 +0200
commitb2f8572c4493205535558fb9320689aaf4774dc1 (patch)
tree021ed8eef1bb57c73ca595c3e79706cf215d6eee /graphql/resolvers/label.go
parent08c0e18ade5241d124fc8a3424b7612174e82cef (diff)
downloadgit-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.go23
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")
+}