summaryrefslogtreecommitdiffstatshomepage
path: root/commands/json_common.go
diff options
context:
space:
mode:
authorMichael Muré <batolettre@gmail.com>2020-06-26 01:02:27 +0200
committerGitHub <noreply@github.com>2020-06-26 01:02:27 +0200
commit2dd0dbb1344ae9293aae05346f977b5d5907934b (patch)
tree610ff7e381ef99827dc1b1dbc9ae4ea137fe5e21 /commands/json_common.go
parentf790083fb28ac0e68acddc9d5e7a709107a70bab (diff)
parentc326007d01b623bcf883f74f31fc3e5ab3078396 (diff)
downloadgit-bug-2dd0dbb1344ae9293aae05346f977b5d5907934b.tar.gz
git-bug-2dd0dbb1344ae9293aae05346f977b5d5907934b.zip
Merge pull request #410 from MichaelMure/output-formatting-2
Add formatting options to the 'show' and 'user ls' commands
Diffstat (limited to 'commands/json_common.go')
-rw-r--r--commands/json_common.go55
1 files changed, 55 insertions, 0 deletions
diff --git a/commands/json_common.go b/commands/json_common.go
new file mode 100644
index 000000000..9a144a1e2
--- /dev/null
+++ b/commands/json_common.go
@@ -0,0 +1,55 @@
+package commands
+
+import (
+ "time"
+
+ "github.com/MichaelMure/git-bug/cache"
+ "github.com/MichaelMure/git-bug/identity"
+ "github.com/MichaelMure/git-bug/util/lamport"
+)
+
+type JSONIdentity struct {
+ Id string `json:"id"`
+ HumanId string `json:"human_id"`
+ Name string `json:"name"`
+ Login string `json:"login"`
+}
+
+func NewJSONIdentity(i identity.Interface) JSONIdentity {
+ return JSONIdentity{
+ Id: i.Id().String(),
+ HumanId: i.Id().Human(),
+ Name: i.Name(),
+ Login: i.Login(),
+ }
+}
+
+func NewJSONIdentityFromExcerpt(excerpt *cache.IdentityExcerpt) JSONIdentity {
+ return JSONIdentity{
+ Id: excerpt.Id.String(),
+ HumanId: excerpt.Id.Human(),
+ Name: excerpt.Name,
+ Login: excerpt.Login,
+ }
+}
+
+func NewJSONIdentityFromLegacyExcerpt(excerpt *cache.LegacyAuthorExcerpt) JSONIdentity {
+ return JSONIdentity{
+ Name: excerpt.Name,
+ Login: excerpt.Login,
+ }
+}
+
+type JSONTime struct {
+ Timestamp int64 `json:"timestamp"`
+ Time time.Time `json:"time"`
+ Lamport lamport.Time `json:"lamport,omitempty"`
+}
+
+func NewJSONTime(t time.Time, l lamport.Time) JSONTime {
+ return JSONTime{
+ Timestamp: t.Unix(),
+ Time: t,
+ Lamport: l,
+ }
+}