diff options
Diffstat (limited to 'internal/formatter')
| -rw-r--r-- | internal/formatter/admin.go | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/internal/formatter/admin.go b/internal/formatter/admin.go index 12ffcd0..16b8041 100644 --- a/internal/formatter/admin.go +++ b/internal/formatter/admin.go @@ -122,6 +122,53 @@ func FormatAccountCreated(account *models.Account, message string, asJSON bool) return sb.String(), nil } +func FormatAccountUpdated(account *models.Account, message string, asJSON bool) (string, error) { + if asJSON { + response := map[string]interface{}{ + "account": account, + "message": message, + } + err := PrintColorizedJSON(response) + if err != nil { + return "", fmt.Errorf("failed to marshal JSON: %w", err) + } + return "", nil + } + + var sb strings.Builder + sb.WriteString(fmt.Sprintf("\n%s\n\n", Bold(Green("✓ Account updated successfully!")))) + + if account != nil && account.Name != "" { + sb.WriteString(fmt.Sprintf("%s %s\n", Cyan("Name:"), Bold(account.Name))) + } else { + sb.WriteString(fmt.Sprintf("%s %s\n", Cyan("Message:"), message)) + } + + if account != nil { + sb.WriteString(fmt.Sprintf("%s %s\n", Cyan("API Key:"), Dim(account.APIKey))) + + if account.Unlimited { + sb.WriteString(fmt.Sprintf("%s %s\n", Cyan("Credits:"), Green("Unlimited"))) + } else { + sb.WriteString(fmt.Sprintf("%s %s\n", Cyan("Credits:"), FormatCredits(int64(account.Credits)))) + } + + premiumStr := Gray("No") + if account.IsPremium { + premiumStr = Magenta("Yes") + } + sb.WriteString(fmt.Sprintf("%s %s\n", Cyan("Premium:"), premiumStr)) + + statusStr := Green("Active") + if account.Disabled { + statusStr = Red("Disabled") + } + sb.WriteString(fmt.Sprintf("%s %s\n", Cyan("Status:"), statusStr)) + } + + return sb.String(), nil +} + func FormatAccountDeleted(message string, asJSON bool) (string, error) { if asJSON { response := map[string]string{"message": message} |
