mirror of https://github.com/coder/coder.git
feat(cli): show license_expires as rfc3339 date instead of unix time (#7687)
* feat(licenses): show license_expires time as rfc3339 date * fix review comments
This commit is contained in:
parent
66f5d39ff5
commit
61dc875454
|
@ -8,6 +8,7 @@ import (
|
|||
"regexp"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"golang.org/x/xerrors"
|
||||
|
||||
|
@ -154,6 +155,14 @@ func (r *RootCmd) licensesList() *clibase.Cmd {
|
|||
licenses = make([]codersdk.License, 0)
|
||||
}
|
||||
|
||||
for i, license := range licenses {
|
||||
newClaims, err := convertLicenseExpireTime(license.Claims)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
licenses[i].Claims = newClaims
|
||||
}
|
||||
|
||||
enc := json.NewEncoder(inv.Stdout)
|
||||
enc.SetIndent("", " ")
|
||||
return enc.Encode(licenses)
|
||||
|
@ -187,3 +196,29 @@ func (r *RootCmd) licenseDelete() *clibase.Cmd {
|
|||
}
|
||||
return cmd
|
||||
}
|
||||
|
||||
func convertLicenseExpireTime(licenseClaims map[string]interface{}) (map[string]interface{}, error) {
|
||||
if licenseClaims["license_expires"] != nil {
|
||||
licenseExpiresNumber, ok := licenseClaims["license_expires"].(json.Number)
|
||||
if !ok {
|
||||
return licenseClaims, xerrors.Errorf("could not convert license_expires to json.Number")
|
||||
}
|
||||
|
||||
licenseExpires, err := licenseExpiresNumber.Int64()
|
||||
if err != nil {
|
||||
return licenseClaims, xerrors.Errorf("could not convert license_expires to int64: %w", err)
|
||||
}
|
||||
|
||||
t := time.Unix(licenseExpires, 0)
|
||||
rfc3339Format := t.Format(time.RFC3339)
|
||||
|
||||
claimsCopy := make(map[string]interface{}, len(licenseClaims))
|
||||
for k, v := range licenseClaims {
|
||||
claimsCopy[k] = v
|
||||
}
|
||||
|
||||
claimsCopy["license_expires"] = rfc3339Format
|
||||
return claimsCopy, nil
|
||||
}
|
||||
return licenseClaims, nil
|
||||
}
|
||||
|
|
|
@ -158,6 +158,7 @@ func TestLicensesListFake(t *testing.T) {
|
|||
assert.Equal(t, "claim1", licenses[0].Claims["h1"])
|
||||
assert.Equal(t, int32(5), licenses[1].ID)
|
||||
assert.Equal(t, "claim2", licenses[1].Claims["h2"])
|
||||
assert.Equal(t, "2024-04-06T16:53:35Z", licenses[0].Claims["license_expires"])
|
||||
})
|
||||
}
|
||||
|
||||
|
@ -294,7 +295,8 @@ func (s *fakeLicenseAPI) licenses(rw http.ResponseWriter, _ *http.Request) {
|
|||
ID: 1,
|
||||
UploadedAt: time.Now(),
|
||||
Claims: map[string]interface{}{
|
||||
"h1": "claim1",
|
||||
"license_expires": 1712422415,
|
||||
"h1": "claim1",
|
||||
"features": map[string]int64{
|
||||
"f1": 1,
|
||||
"f2": 2,
|
||||
|
|
Loading…
Reference in New Issue