Skip to content

Commit bea81b6

Browse files
committed
fix(login): error handling with i18n
1 parent 4590633 commit bea81b6

File tree

3 files changed

+28
-6
lines changed

3 files changed

+28
-6
lines changed

src/cmd/login.go

+10-6
Original file line numberDiff line numberDiff line change
@@ -31,24 +31,24 @@ func loginCmd() *cmdBuilder.Cmd {
3131

3232
regions, err := regionRetriever.RetrieveAllFromURL(ctx, cmdData.Params.GetString("regionUrl"))
3333
if err != nil {
34-
return err
34+
return errors.Wrap(err, i18n.T(i18n.ErrorRetrievingRegions))
3535
}
3636

3737
reg, err := getLoginRegion(ctx, uxBlocks, regions, cmdData.Params.GetString("region"))
3838
if err != nil {
39-
return err
39+
return errors.Wrap(err, i18n.T(i18n.ErrorSelectingRegion))
4040
}
4141

4242
restApiClient := zeropsRestApiClient.NewAuthorizedClient(cmdData.Args["token"][0], "https://"+reg.Address)
4343

4444
response, err := restApiClient.GetUserInfo(ctx)
4545
if err != nil {
46-
return err
46+
return errors.Wrap(err, i18n.T(i18n.ErrorGettingUserInfo))
4747
}
4848

4949
output, err := response.Output()
5050
if err != nil {
51-
return err
51+
return errors.Wrap(err, i18n.T(i18n.ErrorParsingUserInfo))
5252
}
5353

5454
_, err = cmdData.CliStorage.Update(func(data cliStorage.Data) cliStorage.Data {
@@ -57,7 +57,7 @@ func loginCmd() *cmdBuilder.Cmd {
5757
return data
5858
})
5959
if err != nil {
60-
return err
60+
return errors.Wrap(err, i18n.T(i18n.ErrorUpdatingCliStorage))
6161
}
6262

6363
uxBlocks.PrintInfo(styles.SuccessLine(i18n.T(i18n.LoginSuccess, output.FullName, output.Email)))
@@ -103,7 +103,11 @@ func getLoginRegion(
103103
uxBlock.SelectTableHeader(header),
104104
)
105105
if err != nil {
106-
return region.RegionItem{}, err
106+
return region.RegionItem{}, errors.Wrap(err, i18n.T(i18n.ErrorSelectingRegion))
107+
}
108+
109+
if regionIndex[0] < 0 || regionIndex[0] >= len(regions) {
110+
return region.RegionItem{}, errors.New(i18n.T(i18n.ErrorInvalidRegionIndex))
107111
}
108112

109113
return regions[regionIndex[0]], nil

src/i18n/en.go

+9
Original file line numberDiff line numberDiff line change
@@ -329,4 +329,13 @@ more info: https://docs.zerops.io/references/cli/`,
329329
ErrorInvalidScopedProjectId: "Invalid ID of the scoped project [%s], select a different project using `zcli scope project` command.",
330330
ErrorInvalidServiceId: "Invalid service ID [%s], %s", // values: serviceId, message
331331
ErrorServiceNotFound: "Service [%s] not found",
332+
333+
// login errors
334+
ErrorRetrievingRegions: "Error retrieving regions",
335+
ErrorSelectingRegion: "Error selecting region",
336+
ErrorGettingUserInfo: "Error getting user information",
337+
ErrorParsingUserInfo: "Error parsing user information",
338+
ErrorUpdatingCliStorage: "Error updating CLI storage",
339+
340+
ErrorInvalidRegionIndex: "Invalid region index selected",
332341
}

src/i18n/i18n.go

+9
Original file line numberDiff line numberDiff line change
@@ -309,4 +309,13 @@ const (
309309
ErrorInvalidScopedProjectId = "ErrorInvalidScopedProjectId"
310310
ErrorInvalidServiceId = "ErrorInvalidServiceId"
311311
ErrorServiceNotFound = "ErrorServiceNotFound"
312+
313+
// login errors
314+
ErrorRetrievingRegions = "ErrorRetrievingRegions"
315+
ErrorSelectingRegion = "ErrorSelectingRegion"
316+
ErrorGettingUserInfo = "ErrorGettingUserInfo"
317+
ErrorParsingUserInfo = "ErrorParsingUserInfo"
318+
ErrorUpdatingCliStorage = "ErrorUpdatingCliStorage"
319+
320+
ErrorInvalidRegionIndex = "ErrorInvalidRegionIndex"
312321
)

0 commit comments

Comments
 (0)