aboutsummaryrefslogtreecommitdiffstats
path: root/operations/add_comment.go
diff options
context:
space:
mode:
authorMichael Muré <batolettre@gmail.com>2018-09-30 11:10:03 +0200
committerGitHub <noreply@github.com>2018-09-30 11:10:03 +0200
commitd71bb7dd7632780cf5aad5fda84027fa03a9d0f0 (patch)
treedba6c3c0bab18f41e21cd36a9fe05d1d27a574d4 /operations/add_comment.go
parent8fdd6bf99c111c3756056e87ffd9209875ac5c1f (diff)
parentbad9cda969b49bf1bce6799056476ac4684892df (diff)
downloadgit-bug-d71bb7dd7632780cf5aad5fda84027fa03a9d0f0.tar.gz
Merge pull request #54 from MichaelMure/editablecomment
Core support for editable comments
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
-}