aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bug/operations/add_comment.go15
-rw-r--r--bug/operations/create.go17
-rw-r--r--bug/operations/label_change.go17
-rw-r--r--bug/operations/set_status.go14
-rw-r--r--bug/operations/set_title.go13
5 files changed, 41 insertions, 35 deletions
diff --git a/bug/operations/add_comment.go b/bug/operations/add_comment.go
index 66725915..f35c572b 100644
--- a/bug/operations/add_comment.go
+++ b/bug/operations/add_comment.go
@@ -13,13 +13,6 @@ type AddCommentOperation struct {
Message string
}
-func NewAddCommentOp(author bug.Person, message string) AddCommentOperation {
- return AddCommentOperation{
- OpBase: bug.NewOpBase(bug.AddCommentOp, author),
- Message: message,
- }
-}
-
func (op AddCommentOperation) Apply(snapshot bug.Snapshot) bug.Snapshot {
comment := bug.Comment{
Message: op.Message,
@@ -32,6 +25,14 @@ func (op AddCommentOperation) Apply(snapshot bug.Snapshot) bug.Snapshot {
return snapshot
}
+func NewAddCommentOp(author bug.Person, message string) AddCommentOperation {
+ return AddCommentOperation{
+ OpBase: bug.NewOpBase(bug.AddCommentOp, author),
+ Message: message,
+ }
+}
+
+// Convenience function to apply the operation
func Comment(b *bug.Bug, author bug.Person, message string) {
addCommentOp := NewAddCommentOp(author, message)
b.Append(addCommentOp)
diff --git a/bug/operations/create.go b/bug/operations/create.go
index 0fd1225e..4c1dd32e 100644
--- a/bug/operations/create.go
+++ b/bug/operations/create.go
@@ -14,14 +14,6 @@ type CreateOperation struct {
Message string
}
-func NewCreateOp(author bug.Person, title, message string) CreateOperation {
- return CreateOperation{
- OpBase: bug.NewOpBase(bug.CreateOp, author),
- Title: title,
- Message: message,
- }
-}
-
func (op CreateOperation) Apply(snapshot bug.Snapshot) bug.Snapshot {
snapshot.Title = op.Title
snapshot.Comments = []bug.Comment{
@@ -34,6 +26,15 @@ func (op CreateOperation) Apply(snapshot bug.Snapshot) bug.Snapshot {
return snapshot
}
+func NewCreateOp(author bug.Person, title, message string) CreateOperation {
+ return CreateOperation{
+ OpBase: bug.NewOpBase(bug.CreateOp, author),
+ Title: title,
+ Message: message,
+ }
+}
+
+// Convenience function to apply the operation
func Create(author bug.Person, title, message string) (*bug.Bug, error) {
newBug := bug.NewBug()
createOp := NewCreateOp(author, title, message)
diff --git a/bug/operations/label_change.go b/bug/operations/label_change.go
index b9bf86c8..568e132e 100644
--- a/bug/operations/label_change.go
+++ b/bug/operations/label_change.go
@@ -17,14 +17,6 @@ type LabelChangeOperation struct {
Removed []bug.Label
}
-func NewLabelChangeOperation(author bug.Person, added, removed []bug.Label) LabelChangeOperation {
- return LabelChangeOperation{
- OpBase: bug.NewOpBase(bug.LabelChangeOp, author),
- Added: added,
- Removed: removed,
- }
-}
-
func (op LabelChangeOperation) Apply(snapshot bug.Snapshot) bug.Snapshot {
// Add in the set
AddLoop:
@@ -57,6 +49,15 @@ AddLoop:
return snapshot
}
+func NewLabelChangeOperation(author bug.Person, added, removed []bug.Label) LabelChangeOperation {
+ return LabelChangeOperation{
+ OpBase: bug.NewOpBase(bug.LabelChangeOp, author),
+ Added: added,
+ Removed: removed,
+ }
+}
+
+// Convenience function to apply the operation
func ChangeLabels(out io.Writer, b *bug.Bug, author bug.Person, add, remove []string) error {
var added, removed []bug.Label
diff --git a/bug/operations/set_status.go b/bug/operations/set_status.go
index b62409dc..ed6c328c 100644
--- a/bug/operations/set_status.go
+++ b/bug/operations/set_status.go
@@ -13,6 +13,12 @@ type SetStatusOperation struct {
Status bug.Status
}
+func (op SetStatusOperation) Apply(snapshot bug.Snapshot) bug.Snapshot {
+ snapshot.Status = op.Status
+
+ return snapshot
+}
+
func NewSetStatusOp(author bug.Person, status bug.Status) SetStatusOperation {
return SetStatusOperation{
OpBase: bug.NewOpBase(bug.SetStatusOp, author),
@@ -20,17 +26,13 @@ func NewSetStatusOp(author bug.Person, status bug.Status) SetStatusOperation {
}
}
-func (op SetStatusOperation) Apply(snapshot bug.Snapshot) bug.Snapshot {
- snapshot.Status = op.Status
-
- return snapshot
-}
-
+// Convenience function to apply the operation
func Open(b *bug.Bug, author bug.Person) {
op := NewSetStatusOp(author, bug.OpenStatus)
b.Append(op)
}
+// Convenience function to apply the operation
func Close(b *bug.Bug, author bug.Person) {
op := NewSetStatusOp(author, bug.ClosedStatus)
b.Append(op)
diff --git a/bug/operations/set_title.go b/bug/operations/set_title.go
index 295db282..fab01d8a 100644
--- a/bug/operations/set_title.go
+++ b/bug/operations/set_title.go
@@ -13,6 +13,12 @@ type SetTitleOperation struct {
Title string
}
+func (op SetTitleOperation) Apply(snapshot bug.Snapshot) bug.Snapshot {
+ snapshot.Title = op.Title
+
+ return snapshot
+}
+
func NewSetTitleOp(author bug.Person, title string) SetTitleOperation {
return SetTitleOperation{
OpBase: bug.NewOpBase(bug.SetTitleOp, author),
@@ -20,12 +26,7 @@ func NewSetTitleOp(author bug.Person, title string) SetTitleOperation {
}
}
-func (op SetTitleOperation) Apply(snapshot bug.Snapshot) bug.Snapshot {
- snapshot.Title = op.Title
-
- return snapshot
-}
-
+// Convenience function to apply the operation
func SetTitle(b *bug.Bug, author bug.Person, title string) {
setTitleOp := NewSetTitleOp(author, title)
b.Append(setTitleOp)