From 5511c230b678a181cc596238bf6669428d1b1902 Mon Sep 17 00:00:00 2001 From: Michael Muré Date: Thu, 18 Aug 2022 23:34:05 +0200 Subject: move {bug,identity} to /entities, move input to /commands --- bug/operation.go | 73 -------------------------------------------------------- 1 file changed, 73 deletions(-) delete mode 100644 bug/operation.go (limited to 'bug/operation.go') 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 -} -- cgit