aboutsummaryrefslogtreecommitdiffstats
path: root/commands/show.go
diff options
context:
space:
mode:
authorMichael Muré <batolettre@gmail.com>2020-06-25 23:18:17 +0200
committerMichael Muré <batolettre@gmail.com>2020-06-25 23:18:17 +0200
commitaab3a04d0c4ddbf97d589ba9048a539c6d7186e9 (patch)
tree5db59215d2c9559c2d33d1a2a2010270a88d669d /commands/show.go
parent1d06244c82b18959878cf199cd8dd500bbc46aa7 (diff)
downloadgit-bug-aab3a04d0c4ddbf97d589ba9048a539c6d7186e9.tar.gz
bug: harmonize how time are used, fix some issues in command special formats
This assume that the convertion from time.Time <--> Unix timestamp is lossless which seems to be.
Diffstat (limited to 'commands/show.go')
-rw-r--r--commands/show.go66
1 files changed, 32 insertions, 34 deletions
diff --git a/commands/show.go b/commands/show.go
index 4915f181..2f4e46ed 100644
--- a/commands/show.go
+++ b/commands/show.go
@@ -5,7 +5,6 @@ import (
"errors"
"fmt"
"strings"
- "time"
"github.com/spf13/cobra"
@@ -47,9 +46,9 @@ func runShowBug(_ *cobra.Command, args []string) error {
case "authorEmail":
fmt.Printf("%s\n", snapshot.Author.Email())
case "createTime":
- fmt.Printf("%s\n", snapshot.CreatedAt.String())
+ fmt.Printf("%s\n", snapshot.CreateTime.String())
case "lastEdit":
- fmt.Printf("%s\n", snapshot.LastEditTime().String())
+ fmt.Printf("%s\n", snapshot.EditTime().String())
case "humanId":
fmt.Printf("%s\n", snapshot.Id().Human())
case "id":
@@ -101,11 +100,11 @@ func showDefaultFormatter(snapshot *bug.Snapshot) error {
fmt.Printf("%s opened this issue %s\n",
colors.Magenta(snapshot.Author.DisplayName()),
- snapshot.CreatedAt.String(),
+ snapshot.CreateTime.String(),
)
fmt.Printf("This was last edited at %s\n\n",
- snapshot.LastEditTime().String(),
+ snapshot.EditTime().String(),
)
// Labels
@@ -166,37 +165,45 @@ func showDefaultFormatter(snapshot *bug.Snapshot) error {
}
type JSONBugSnapshot struct {
- Id string `json:"id"`
- HumanId string `json:"human_id"`
- CreationTime time.Time `json:"creation_time"`
- LastEdited time.Time `json:"last_edited"`
-
+ Id string `json:"id"`
+ HumanId string `json:"human_id"`
+ CreateTime JSONTime `json:"create_time"`
+ EditTime JSONTime `json:"edit_time"`
Status string `json:"status"`
Labels []bug.Label `json:"labels"`
Title string `json:"title"`
Author JSONIdentity `json:"author"`
Actors []JSONIdentity `json:"actors"`
Participants []JSONIdentity `json:"participants"`
-
- Comments []JSONComment `json:"comments"`
+ Comments []JSONComment `json:"comments"`
}
type JSONComment struct {
- Id int `json:"id"`
+ Id string `json:"id"`
+ HumanId string `json:"human_id"`
Author JSONIdentity `json:"author"`
Message string `json:"message"`
}
+func NewJSONComment(comment bug.Comment) JSONComment {
+ return JSONComment{
+ Id: comment.Id().String(),
+ HumanId: comment.Id().Human(),
+ Author: NewJSONIdentity(comment.Author),
+ Message: comment.Message,
+ }
+}
+
func showJsonFormatter(snapshot *bug.Snapshot) error {
jsonBug := JSONBugSnapshot{
- Id: snapshot.Id().String(),
- HumanId: snapshot.Id().Human(),
- CreationTime: snapshot.CreatedAt,
- LastEdited: snapshot.LastEditTime(),
- Status: snapshot.Status.String(),
- Labels: snapshot.Labels,
- Title: snapshot.Title,
- Author: NewJSONIdentity(snapshot.Author),
+ Id: snapshot.Id().String(),
+ HumanId: snapshot.Id().Human(),
+ CreateTime: NewJSONTime(snapshot.CreateTime, 0),
+ EditTime: NewJSONTime(snapshot.EditTime(), 0),
+ Status: snapshot.Status.String(),
+ Labels: snapshot.Labels,
+ Title: snapshot.Title,
+ Author: NewJSONIdentity(snapshot.Author),
}
jsonBug.Actors = make([]JSONIdentity, len(snapshot.Actors))
@@ -209,18 +216,9 @@ func showJsonFormatter(snapshot *bug.Snapshot) error {
jsonBug.Participants[i] = NewJSONIdentity(element)
}
+ jsonBug.Comments = make([]JSONComment, len(snapshot.Comments))
for i, comment := range snapshot.Comments {
- var message string
- if comment.Message == "" {
- message = "No description provided."
- } else {
- message = comment.Message
- }
- jsonBug.Comments = append(jsonBug.Comments, JSONComment{
- Id: i,
- Author: NewJSONIdentity(comment.Author),
- Message: message,
- })
+ jsonBug.Comments[i] = NewJSONComment(comment)
}
jsonObject, _ := json.MarshalIndent(jsonBug, "", " ")
@@ -242,11 +240,11 @@ func showOrgmodeFormatter(snapshot *bug.Snapshot) error {
)
fmt.Printf("* Creation Time: %s\n",
- snapshot.CreatedAt.String(),
+ snapshot.CreateTime.String(),
)
fmt.Printf("* Last Edit: %s\n",
- snapshot.LastEditTime().String(),
+ snapshot.EditTime().String(),
)
// Labels