operations.go

  1package resolvers
  2
  3import (
  4	"context"
  5	"fmt"
  6	"time"
  7
  8	"github.com/MichaelMure/git-bug/api/graphql/graph"
  9	"github.com/MichaelMure/git-bug/api/graphql/models"
 10	"github.com/MichaelMure/git-bug/bug"
 11)
 12
 13var _ graph.CreateOperationResolver = createOperationResolver{}
 14
 15type createOperationResolver struct{}
 16
 17func (createOperationResolver) ID(_ context.Context, obj *bug.CreateOperation) (string, error) {
 18	return obj.Id().String(), nil
 19}
 20
 21func (createOperationResolver) Author(_ context.Context, obj *bug.CreateOperation) (models.IdentityWrapper, error) {
 22	return models.NewLoadedIdentity(obj.Author), nil
 23}
 24
 25func (createOperationResolver) Date(_ context.Context, obj *bug.CreateOperation) (*time.Time, error) {
 26	t := obj.Time()
 27	return &t, nil
 28}
 29
 30var _ graph.AddCommentOperationResolver = addCommentOperationResolver{}
 31
 32type addCommentOperationResolver struct{}
 33
 34func (addCommentOperationResolver) ID(_ context.Context, obj *bug.AddCommentOperation) (string, error) {
 35	return obj.Id().String(), nil
 36}
 37
 38func (addCommentOperationResolver) Author(_ context.Context, obj *bug.AddCommentOperation) (models.IdentityWrapper, error) {
 39	return models.NewLoadedIdentity(obj.Author), nil
 40}
 41
 42func (addCommentOperationResolver) Date(_ context.Context, obj *bug.AddCommentOperation) (*time.Time, error) {
 43	t := obj.Time()
 44	return &t, nil
 45}
 46
 47var _ graph.EditCommentOperationResolver = editCommentOperationResolver{}
 48
 49type editCommentOperationResolver struct{}
 50
 51func (editCommentOperationResolver) ID(_ context.Context, obj *bug.EditCommentOperation) (string, error) {
 52	return obj.Id().String(), nil
 53}
 54
 55func (editCommentOperationResolver) Target(_ context.Context, obj *bug.EditCommentOperation) (string, error) {
 56	return obj.Target.String(), nil
 57}
 58
 59func (editCommentOperationResolver) Author(_ context.Context, obj *bug.EditCommentOperation) (models.IdentityWrapper, error) {
 60	return models.NewLoadedIdentity(obj.Author), nil
 61}
 62
 63func (editCommentOperationResolver) Date(_ context.Context, obj *bug.EditCommentOperation) (*time.Time, error) {
 64	t := obj.Time()
 65	return &t, nil
 66}
 67
 68var _ graph.LabelChangeOperationResolver = labelChangeOperationResolver{}
 69
 70type labelChangeOperationResolver struct{}
 71
 72func (labelChangeOperationResolver) ID(_ context.Context, obj *bug.LabelChangeOperation) (string, error) {
 73	return obj.Id().String(), nil
 74}
 75
 76func (labelChangeOperationResolver) Author(_ context.Context, obj *bug.LabelChangeOperation) (models.IdentityWrapper, error) {
 77	return models.NewLoadedIdentity(obj.Author), nil
 78}
 79
 80func (labelChangeOperationResolver) Date(_ context.Context, obj *bug.LabelChangeOperation) (*time.Time, error) {
 81	t := obj.Time()
 82	return &t, nil
 83}
 84
 85var _ graph.SetStatusOperationResolver = setStatusOperationResolver{}
 86
 87type setStatusOperationResolver struct{}
 88
 89func (setStatusOperationResolver) ID(_ context.Context, obj *bug.SetStatusOperation) (string, error) {
 90	return obj.Id().String(), nil
 91}
 92
 93func (setStatusOperationResolver) Author(_ context.Context, obj *bug.SetStatusOperation) (models.IdentityWrapper, error) {
 94	return models.NewLoadedIdentity(obj.Author), nil
 95}
 96
 97func (setStatusOperationResolver) Date(_ context.Context, obj *bug.SetStatusOperation) (*time.Time, error) {
 98	t := obj.Time()
 99	return &t, nil
100}
101
102func (setStatusOperationResolver) Status(_ context.Context, obj *bug.SetStatusOperation) (models.Status, error) {
103	return convertStatus(obj.Status)
104}
105
106var _ graph.SetTitleOperationResolver = setTitleOperationResolver{}
107
108type setTitleOperationResolver struct{}
109
110func (setTitleOperationResolver) ID(_ context.Context, obj *bug.SetTitleOperation) (string, error) {
111	return obj.Id().String(), nil
112}
113
114func (setTitleOperationResolver) Author(_ context.Context, obj *bug.SetTitleOperation) (models.IdentityWrapper, error) {
115	return models.NewLoadedIdentity(obj.Author), nil
116}
117
118func (setTitleOperationResolver) Date(_ context.Context, obj *bug.SetTitleOperation) (*time.Time, error) {
119	t := obj.Time()
120	return &t, nil
121}
122
123func convertStatus(status bug.Status) (models.Status, error) {
124	switch status {
125	case bug.OpenStatus:
126		return models.StatusOpen, nil
127	case bug.ClosedStatus:
128		return models.StatusClosed, nil
129	}
130
131	return "", fmt.Errorf("unknown status")
132}