aboutsummaryrefslogtreecommitdiffstats
path: root/bug/operations/add_comment.go
diff options
context:
space:
mode:
Diffstat (limited to 'bug/operations/add_comment.go')
-rw-r--r--bug/operations/add_comment.go30
1 files changed, 30 insertions, 0 deletions
diff --git a/bug/operations/add_comment.go b/bug/operations/add_comment.go
new file mode 100644
index 00000000..2b83de83
--- /dev/null
+++ b/bug/operations/add_comment.go
@@ -0,0 +1,30 @@
+package operations
+
+import "github.com/MichaelMure/git-bug/bug"
+
+var _ bug.Operation = AddCommentOperation{}
+
+type AddCommentOperation struct {
+ bug.OpBase
+ Message string `json:"m"`
+ Author bug.Person `json:"a"`
+}
+
+func NewAddCommentOp(author bug.Person, message string) AddCommentOperation {
+ return AddCommentOperation{
+ OpBase: bug.OpBase{OperationType: bug.ADD_COMMENT},
+ Message: message,
+ Author: author,
+ }
+}
+
+func (op AddCommentOperation) Apply(snapshot bug.Snapshot) bug.Snapshot {
+ comment := bug.Comment{
+ Message: op.Message,
+ Author: op.Author,
+ }
+
+ snapshot.Comments = append(snapshot.Comments, comment)
+
+ return snapshot
+}