1package resolvers
2
3import (
4 "context"
5 "fmt"
6 "image/color"
7
8 "github.com/MichaelMure/git-bug/bug"
9 "github.com/MichaelMure/git-bug/graphql/graph"
10 "github.com/MichaelMure/git-bug/graphql/models"
11)
12
13var _ graph.LabelResolver = &labelResolver{}
14
15type labelResolver struct{}
16
17func (labelResolver) Name(ctx context.Context, obj *bug.Label) (string, error) {
18 return obj.String(), nil
19}
20
21func (labelResolver) Color(ctx context.Context, obj *bug.Label) (*color.RGBA, error) {
22 rgba := obj.Color().RGBA()
23 return &rgba, nil
24}
25
26var _ graph.LabelChangeResultResolver = &labelChangeResultResolver{}
27
28type labelChangeResultResolver struct{}
29
30func (labelChangeResultResolver) Status(ctx context.Context, obj *bug.LabelChangeResult) (models.LabelChangeStatus, error) {
31 switch obj.Status {
32 case bug.LabelChangeAdded:
33 return models.LabelChangeStatusAdded, nil
34 case bug.LabelChangeRemoved:
35 return models.LabelChangeStatusRemoved, nil
36 case bug.LabelChangeDuplicateInOp:
37 return models.LabelChangeStatusDuplicateInOp, nil
38 case bug.LabelChangeAlreadySet:
39 return models.LabelChangeStatusAlreadyExist, nil
40 case bug.LabelChangeDoesntExist:
41 return models.LabelChangeStatusDoesntExist, nil
42 }
43
44 return "", fmt.Errorf("unknown status")
45}