mirror of
https://github.com/MichaelMure/git-bug.git
synced 2024-12-15 10:12:06 +03:00
2ab6381a94
Included in the changes: - create a new /api root package to hold all API code, migrate /graphql in there - git API handlers all use the cache instead of the repo directly - git API handlers are now tested - git API handlers now require a "repo" mux parameter - lots of untangling of API/handlers/middleware - less code in commands/webui.go
46 lines
1.2 KiB
Go
46 lines
1.2 KiB
Go
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")
|
|
}
|