operations.go

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