aboutsummaryrefslogtreecommitdiffstats
path: root/bug/operation.go
diff options
context:
space:
mode:
Diffstat (limited to 'bug/operation.go')
-rw-r--r--bug/operation.go73
1 files changed, 0 insertions, 73 deletions
diff --git a/bug/operation.go b/bug/operation.go
deleted file mode 100644
index a02fc780..00000000
--- a/bug/operation.go
+++ /dev/null
@@ -1,73 +0,0 @@
-package bug
-
-import (
- "encoding/json"
- "fmt"
-
- "github.com/MichaelMure/git-bug/entity"
- "github.com/MichaelMure/git-bug/entity/dag"
-)
-
-const (
- _ dag.OperationType = iota
- CreateOp
- SetTitleOp
- AddCommentOp
- SetStatusOp
- LabelChangeOp
- EditCommentOp
- NoOpOp
- SetMetadataOp
-)
-
-// Operation define the interface to fulfill for an edit operation of a Bug
-type Operation interface {
- dag.Operation
-
- // Apply the operation to a Snapshot to create the final state
- Apply(snapshot *Snapshot)
-}
-
-// make sure that package external operations do conform to our interface
-var _ Operation = &dag.NoOpOperation[*Snapshot]{}
-var _ Operation = &dag.SetMetadataOperation[*Snapshot]{}
-
-func operationUnmarshaller(raw json.RawMessage, resolvers entity.Resolvers) (dag.Operation, error) {
- var t struct {
- OperationType dag.OperationType `json:"type"`
- }
-
- if err := json.Unmarshal(raw, &t); err != nil {
- return nil, err
- }
-
- var op dag.Operation
-
- switch t.OperationType {
- case AddCommentOp:
- op = &AddCommentOperation{}
- case CreateOp:
- op = &CreateOperation{}
- case EditCommentOp:
- op = &EditCommentOperation{}
- case LabelChangeOp:
- op = &LabelChangeOperation{}
- case NoOpOp:
- op = &dag.NoOpOperation[*Snapshot]{}
- case SetMetadataOp:
- op = &dag.SetMetadataOperation[*Snapshot]{}
- case SetStatusOp:
- op = &SetStatusOperation{}
- case SetTitleOp:
- op = &SetTitleOperation{}
- default:
- panic(fmt.Sprintf("unknown operation type %v", t.OperationType))
- }
-
- err := json.Unmarshal(raw, &op)
- if err != nil {
- return nil, err
- }
-
- return op, nil
-}