aboutsummaryrefslogtreecommitdiffstats
path: root/operations/add_comment.go
diff options
context:
space:
mode:
authorMichael Muré <batolettre@gmail.com>2018-09-28 20:39:39 +0200
committerMichael Muré <batolettre@gmail.com>2018-09-29 00:51:54 +0200
commit1bf268cebc84a9de1e538cbb54bcc0f434022192 (patch)
treedaeb92cd6b15d56a7a7102f95b73756e5b9597d0 /operations/add_comment.go
parent8af6f7d98f2fd98f85d6a17bcda49983c272cf48 (diff)
downloadgit-bug-1bf268cebc84a9de1e538cbb54bcc0f434022192.tar.gz
merge package operations into bug, they are tightly coupled anyway
Diffstat (limited to 'operations/add_comment.go')
-rw-r--r--operations/add_comment.go75
1 files changed, 0 insertions, 75 deletions
diff --git a/operations/add_comment.go b/operations/add_comment.go
deleted file mode 100644
index 56a2c606..00000000
--- a/operations/add_comment.go
+++ /dev/null
@@ -1,75 +0,0 @@
-package operations
-
-import (
- "fmt"
-
- "github.com/MichaelMure/git-bug/bug"
- "github.com/MichaelMure/git-bug/util/git"
- "github.com/MichaelMure/git-bug/util/text"
-)
-
-// AddCommentOperation will add a new comment in the bug
-
-var _ bug.Operation = AddCommentOperation{}
-
-type AddCommentOperation struct {
- *bug.OpBase
- Message string `json:"message"`
- // TODO: change for a map[string]util.hash to store the filename ?
- Files []git.Hash `json:"files"`
-}
-
-func (op AddCommentOperation) Apply(snapshot bug.Snapshot) bug.Snapshot {
- comment := bug.Comment{
- Message: op.Message,
- Author: op.Author,
- Files: op.Files,
- UnixTime: op.UnixTime,
- }
-
- snapshot.Comments = append(snapshot.Comments, comment)
-
- return snapshot
-}
-
-func (op AddCommentOperation) GetFiles() []git.Hash {
- return op.Files
-}
-
-func (op AddCommentOperation) Validate() error {
- if err := bug.OpBaseValidate(op, bug.AddCommentOp); err != nil {
- return err
- }
-
- if text.Empty(op.Message) {
- return fmt.Errorf("message is empty")
- }
-
- if !text.Safe(op.Message) {
- return fmt.Errorf("message is not fully printable")
- }
-
- return nil
-}
-
-func NewAddCommentOp(author bug.Person, unixTime int64, message string, files []git.Hash) AddCommentOperation {
- return AddCommentOperation{
- OpBase: bug.NewOpBase(bug.AddCommentOp, author, unixTime),
- Message: message,
- Files: files,
- }
-}
-
-// Convenience function to apply the operation
-func Comment(b bug.Interface, author bug.Person, unixTime int64, message string) error {
- return CommentWithFiles(b, author, unixTime, message, nil)
-}
-
-func CommentWithFiles(b bug.Interface, author bug.Person, unixTime int64, message string, files []git.Hash) error {
- addCommentOp := NewAddCommentOp(author, unixTime, message, files)
- if err := addCommentOp.Validate(); err != nil {
- return err
- }
- b.Append(addCommentOp)
- return nil
-}