aboutsummaryrefslogtreecommitdiffstats
path: root/api/graphql/resolvers/label.go
diff options
context:
space:
mode:
authorMichael Muré <batolettre@gmail.com>2020-06-27 23:09:22 +0200
committerGitHub <noreply@github.com>2020-06-27 23:09:22 +0200
commitc0dbc149d5c0c3610476ba14a800c9ba803a2c2c (patch)
treec07587da30eae7a37c2597d110ef1e66be3b4b8f /api/graphql/resolvers/label.go
parent23228101a2a38a139f6fc2cafc18e9f08d911089 (diff)
parent3aaf775857d186ad416133935e73ed1b063938c6 (diff)
downloadgit-bug-c0dbc149d5c0c3610476ba14a800c9ba803a2c2c.tar.gz
Merge pull request #407 from lukegb/fix-402
Add support for read-only mode for web UI.
Diffstat (limited to 'api/graphql/resolvers/label.go')
-rw-r--r--api/graphql/resolvers/label.go45
1 files changed, 45 insertions, 0 deletions
diff --git a/api/graphql/resolvers/label.go b/api/graphql/resolvers/label.go
new file mode 100644
index 00000000..83e95029
--- /dev/null
+++ b/api/graphql/resolvers/label.go
@@ -0,0 +1,45 @@
+package resolvers
+
+import (
+ "context"
+ "fmt"
+ "image/color"
+
+ "github.com/MichaelMure/git-bug/api/graphql/graph"
+ "github.com/MichaelMure/git-bug/api/graphql/models"
+ "github.com/MichaelMure/git-bug/bug"
+)
+
+var _ graph.LabelResolver = &labelResolver{}
+
+type labelResolver struct{}
+
+func (labelResolver) Name(ctx context.Context, obj *bug.Label) (string, error) {
+ return obj.String(), nil
+}
+
+func (labelResolver) Color(ctx context.Context, obj *bug.Label) (*color.RGBA, error) {
+ rgba := obj.Color().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")
+}