From 4dc9110029b8bdb086de23abde2e454a47442363 Mon Sep 17 00:00:00 2001 From: MaysWind Date: Sat, 17 Apr 2021 23:08:04 +0800 Subject: [PATCH] optimize user-get cli output format --- cmd/user_data.go | 31 +++++++++++++++++++++++++++-- pkg/models/user.go | 49 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 78 insertions(+), 2 deletions(-) diff --git a/cmd/user_data.go b/cmd/user_data.go index d793613d..3a1c8df0 100644 --- a/cmd/user_data.go +++ b/cmd/user_data.go @@ -193,7 +193,7 @@ func addNewUser(c *cli.Context) error { return err } - utils.PrintObjectFields(user) + printUserInfo(user) return nil } @@ -213,7 +213,7 @@ func getUserInfo(c *cli.Context) error { return err } - utils.PrintObjectFields(user) + printUserInfo(user) return nil } @@ -391,6 +391,33 @@ func exportUserTransaction(c *cli.Context) error { return nil } +func printUserInfo(user *models.User) { + fmt.Printf("[Uid] %d\n", user.Uid) + fmt.Printf("[Username] %s\n", user.Username) + fmt.Printf("[Email] %s\n", user.Email) + fmt.Printf("[Nickname] %s\n", user.Nickname) + fmt.Printf("[Password] %s\n", user.Password) + fmt.Printf("[Salt] %s\n", user.Salt) + fmt.Printf("[DefaultCurrency] %s\n", user.DefaultCurrency) + fmt.Printf("[FirstDayOfWeek] %s\n", user.FirstDayOfWeek) + fmt.Printf("[TransactionEditScope] %s\n", user.TransactionEditScope) + fmt.Printf("[Deleted] %t\n", user.Deleted) + fmt.Printf("[EmailVerified] %t\n", user.EmailVerified) + fmt.Printf("[CreatedAt] %s (%d)\n", utils.FormatUnixTimeToLongDateTimeInServerTimezone(user.CreatedUnixTime), user.CreatedUnixTime) + + if user.UpdatedUnixTime > 0 { + fmt.Printf("[UpdatedAt] %s (%d)\n", utils.FormatUnixTimeToLongDateTimeInServerTimezone(user.UpdatedUnixTime), user.UpdatedUnixTime) + } + + if user.DeletedUnixTime > 0 { + fmt.Printf("[DeletedAt] %s (%d)\n", utils.FormatUnixTimeToLongDateTimeInServerTimezone(user.DeletedUnixTime), user.DeletedUnixTime) + } + + if user.LastLoginUnixTime > 0 { + fmt.Printf("[LastLoginAt] %s (%d)\n", utils.FormatUnixTimeToLongDateTimeInServerTimezone(user.LastLoginUnixTime), user.LastLoginUnixTime) + } +} + func printTokenInfo(token *models.TokenRecord) { fmt.Printf("[CreatedAt] %s (%d)\n", utils.FormatUnixTimeToLongDateTimeInServerTimezone(token.CreatedUnixTime), token.CreatedUnixTime) fmt.Printf("[ExpiredAt] %s (%d)\n", utils.FormatUnixTimeToLongDateTimeInServerTimezone(token.ExpiredUnixTime), token.ExpiredUnixTime) diff --git a/pkg/models/user.go b/pkg/models/user.go index e12a43b0..9bbf7f0f 100644 --- a/pkg/models/user.go +++ b/pkg/models/user.go @@ -1,6 +1,7 @@ package models import ( + "fmt" "time" "github.com/mayswind/ezbookkeeping/pkg/utils" @@ -21,6 +22,30 @@ const ( WEEKDAY_INVALID WeekDay = 255 ) +// String returns a textual representation of the week day enum +func (d WeekDay) String() string { + switch d { + case WEEKDAY_SUNDAY: + return "Sunday" + case WEEKDAY_MONDAY: + return "Monday" + case WEEKDAY_TUESDAY: + return "Tuesday" + case WEEKDAY_WEDNESDAY: + return "Wednesday" + case WEEKDAY_THURSDAY: + return "Thursday" + case WEEKDAY_FRIDAY: + return "Friday" + case WEEKDAY_SATURDAY: + return "Saturday" + case WEEKDAY_INVALID: + return "Invalid" + default: + return fmt.Sprintf("Invalid(%d)", int(d)) + } +} + // TransactionEditScope represents the scope which transaction can be edited type TransactionEditScope byte @@ -36,6 +61,30 @@ const ( TRANSACTION_EDIT_SCOPE_INVALID TransactionEditScope = 255 ) +// String returns a textual representation of the editable transaction scopes enum +func (s TransactionEditScope) String() string { + switch s { + case TRANSACTION_EDIT_SCOPE_NONE: + return "None" + case TRANSACTION_EDIT_SCOPE_ALL: + return "All" + case TRANSACTION_EDIT_SCOPE_TODAY_OR_LATER: + return "TodayOrLater" + case TRANSACTION_EDIT_SCOPE_LAST_24H_OR_LATER: + return "Last24HourOrLater" + case TRANSACTION_EDIT_SCOPE_THIS_WEEK_OR_LATER: + return "ThisWeekOrLater" + case TRANSACTION_EDIT_SCOPE_THIS_MONTH_OR_LATER: + return "ThisMonthOrLater" + case TRANSACTION_EDIT_SCOPE_THIS_YEAR_OR_LATER: + return "ThisYearOrLater" + case TRANSACTION_EDIT_SCOPE_INVALID: + return "Invalid" + default: + return fmt.Sprintf("Invalid(%d)", int(s)) + } +} + // User represents user data stored in database type User struct { Uid int64 `xorm:"PK"`