1package resolvers
2
3import (
4 "context"
5 "fmt"
6 "github.com/MichaelMure/git-bug/bug"
7 "github.com/MichaelMure/git-bug/bug/operations"
8 "github.com/MichaelMure/git-bug/graphql/models"
9 "time"
10)
11
12type addCommentOperationResolver struct{}
13
14func (addCommentOperationResolver) Date(ctx context.Context, obj *operations.AddCommentOperation) (time.Time, error) {
15 return obj.Time(), nil
16}
17
18type createOperationResolver struct{}
19
20func (createOperationResolver) Date(ctx context.Context, obj *operations.CreateOperation) (time.Time, error) {
21 return obj.Time(), nil
22}
23
24type labelChangeOperation struct{}
25
26func (labelChangeOperation) Date(ctx context.Context, obj *operations.LabelChangeOperation) (time.Time, error) {
27 return obj.Time(), nil
28}
29
30type setStatusOperationResolver struct{}
31
32func (setStatusOperationResolver) Date(ctx context.Context, obj *operations.SetStatusOperation) (time.Time, error) {
33 return obj.Time(), nil
34}
35
36func (setStatusOperationResolver) Status(ctx context.Context, obj *operations.SetStatusOperation) (models.Status, error) {
37 return convertStatus(obj.Status)
38}
39
40type setTitleOperationResolver struct{}
41
42func (setTitleOperationResolver) Date(ctx context.Context, obj *operations.SetTitleOperation) (time.Time, error) {
43 return obj.Time(), nil
44}
45
46func convertStatus(status bug.Status) (models.Status, error) {
47 switch status {
48 case bug.OpenStatus:
49 return models.StatusOpen, nil
50 case bug.ClosedStatus:
51 return models.StatusClosed, nil
52 }
53
54 return "", fmt.Errorf("Unknown status")
55}