operations.go

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