aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Muré <batolettre@gmail.com>2018-07-14 22:18:40 +0200
committerMichael Muré <batolettre@gmail.com>2018-07-14 22:18:40 +0200
commitd973718567b0f7a7e775dbab2c557f0dda9afa29 (patch)
tree9cdaa94f72b62de0af65e77015587ad2093b3600
parentda470993d13ce63087034db9b7e8ffbdf18e87a5 (diff)
downloadgit-bug-d973718567b0f7a7e775dbab2c557f0dda9afa29.tar.gz
add time to comments
-rw-r--r--bug/comment.go6
-rw-r--r--bug/operations/add_comment.go12
-rw-r--r--bug/operations/create.go4
-rw-r--r--bug/operations/create_test.go4
4 files changed, 21 insertions, 5 deletions
diff --git a/bug/comment.go b/bug/comment.go
index f7727709..2261f6de 100644
--- a/bug/comment.go
+++ b/bug/comment.go
@@ -1,6 +1,12 @@
package bug
+import "time"
+
type Comment struct {
Author Person
Message string
+
+ // Creation time of the comment.
+ // Should be used only for human display, never for ordering as we can't rely on it in a distributed system.
+ Time time.Time
}
diff --git a/bug/operations/add_comment.go b/bug/operations/add_comment.go
index 2b83de83..1f9e3410 100644
--- a/bug/operations/add_comment.go
+++ b/bug/operations/add_comment.go
@@ -1,13 +1,17 @@
package operations
-import "github.com/MichaelMure/git-bug/bug"
+import (
+ "github.com/MichaelMure/git-bug/bug"
+ "time"
+)
var _ bug.Operation = AddCommentOperation{}
type AddCommentOperation struct {
bug.OpBase
- Message string `json:"m"`
- Author bug.Person `json:"a"`
+ Message string
+ Author bug.Person
+ Time time.Time
}
func NewAddCommentOp(author bug.Person, message string) AddCommentOperation {
@@ -15,6 +19,7 @@ func NewAddCommentOp(author bug.Person, message string) AddCommentOperation {
OpBase: bug.OpBase{OperationType: bug.ADD_COMMENT},
Message: message,
Author: author,
+ Time: time.Now(),
}
}
@@ -22,6 +27,7 @@ func (op AddCommentOperation) Apply(snapshot bug.Snapshot) bug.Snapshot {
comment := bug.Comment{
Message: op.Message,
Author: op.Author,
+ Time: op.Time,
}
snapshot.Comments = append(snapshot.Comments, comment)
diff --git a/bug/operations/create.go b/bug/operations/create.go
index 49b648a2..81fc58f1 100644
--- a/bug/operations/create.go
+++ b/bug/operations/create.go
@@ -3,6 +3,7 @@ package operations
import (
"github.com/MichaelMure/git-bug/bug"
"reflect"
+ "time"
)
// CreateOperation define the initial creation of a bug
@@ -14,6 +15,7 @@ type CreateOperation struct {
Title string
Message string
Author bug.Person
+ Time time.Time
}
func NewCreateOp(author bug.Person, title, message string) CreateOperation {
@@ -22,6 +24,7 @@ func NewCreateOp(author bug.Person, title, message string) CreateOperation {
Title: title,
Message: message,
Author: author,
+ Time: time.Now(),
}
}
@@ -37,6 +40,7 @@ func (op CreateOperation) Apply(snapshot bug.Snapshot) bug.Snapshot {
{
Message: op.Message,
Author: op.Author,
+ Time: op.Time,
},
}
return snapshot
diff --git a/bug/operations/create_test.go b/bug/operations/create_test.go
index 35e515ac..bd73fc1a 100644
--- a/bug/operations/create_test.go
+++ b/bug/operations/create_test.go
@@ -21,11 +21,11 @@ func TestCreate(t *testing.T) {
expected := bug.Snapshot{
Title: "title",
Comments: []bug.Comment{
- {Author: rene, Message: "message"},
+ {Author: rene, Message: "message", Time: create.Time},
},
}
if !reflect.DeepEqual(snapshot, expected) {
- t.Fail()
+ t.Fatalf("%s different than %s", snapshot, expected)
}
}