Skip to content

Commit

Permalink
feat: extract complexity
Browse files Browse the repository at this point in the history
  • Loading branch information
lucassabreu committed Jun 5, 2024
1 parent 66227eb commit 87ae700
Showing 1 changed file with 60 additions and 45 deletions.
105 changes: 60 additions & 45 deletions pkg/cmd/config/init/init.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,56 +40,13 @@ func NewCmdInit(f cmdutil.Factory) *cobra.Command {
return err
}

ws, err := c.GetWorkspaces(api.GetWorkspaces{})
if err != nil {
if err := setWorkspace(c, config, i); err != nil {
return err
}

dWorkspace := ""
wsString := make([]string, len(ws))
for i := range ws {
wsString[i] = fmt.Sprintf("%s - %s", ws[i].ID, ws[i].Name)

if ws[i].ID == config.GetString(cmdutil.CONF_WORKSPACE) {
dWorkspace = wsString[i]
}
}

w := ""
if w, err = i.AskFromOptions("Choose default Workspace:",
wsString, dWorkspace); err != nil {
if err := setUser(c, config, i); err != nil {
return err
}
config.SetString(cmdutil.CONF_WORKSPACE,
strings.TrimSpace(w[0:strings.Index(w, " - ")]))

users, err := c.WorkspaceUsers(api.WorkspaceUsersParam{
Workspace: config.GetString(cmdutil.CONF_WORKSPACE),
PaginationParam: api.AllPages(),
})

if err != nil {
return err
}

userId := config.GetString(cmdutil.CONF_USER_ID)
dUser := ""
usersString := make([]string, len(users))
for i := range users {
usersString[i] = fmt.Sprintf("%s - %s", users[i].ID, users[i].Name)

if users[i].ID == userId {
dUser = usersString[i]
}
}

userID := ""
if userID, err = i.AskFromOptions(
"Choose your user:", usersString, dUser); err != nil {
return err
}
config.SetString(cmdutil.CONF_USER_ID,
strings.TrimSpace(userID[0:strings.Index(userID, " - ")]))

if err := updateFlag(i, config, cmdutil.CONF_ALLOW_NAME_FOR_ID,
"Should try to find projects/clients/users/tasks/tags by their names?",
Expand Down Expand Up @@ -217,6 +174,64 @@ func NewCmdInit(f cmdutil.Factory) *cobra.Command {
return cmd
}

func setUser(c api.Client, config cmdutil.Config, i ui.UI) error {
users, err := c.WorkspaceUsers(api.WorkspaceUsersParam{
Workspace: config.GetString(cmdutil.CONF_WORKSPACE),
PaginationParam: api.AllPages(),
})

if err != nil {
return err

Check warning on line 184 in pkg/cmd/config/init/init.go

View check run for this annotation

Codecov / codecov/patch

pkg/cmd/config/init/init.go#L184

Added line #L184 was not covered by tests
}

userId := config.GetString(cmdutil.CONF_USER_ID)
dUser := ""
usersString := make([]string, len(users))
for i := range users {
usersString[i] = fmt.Sprintf("%s - %s", users[i].ID, users[i].Name)

if users[i].ID == userId {
dUser = usersString[i]

Check warning on line 194 in pkg/cmd/config/init/init.go

View check run for this annotation

Codecov / codecov/patch

pkg/cmd/config/init/init.go#L194

Added line #L194 was not covered by tests
}
}

userID := ""
if userID, err = i.AskFromOptions(
"Choose your user:", usersString, dUser); err != nil {
return err

Check warning on line 201 in pkg/cmd/config/init/init.go

View check run for this annotation

Codecov / codecov/patch

pkg/cmd/config/init/init.go#L201

Added line #L201 was not covered by tests
}

config.SetString(cmdutil.CONF_USER_ID,
strings.TrimSpace(userID[0:strings.Index(userID, " - ")]))
return nil
}

func setWorkspace(c api.Client, config cmdutil.Config, i ui.UI) error {
ws, err := c.GetWorkspaces(api.GetWorkspaces{})
if err != nil {
return err

Check warning on line 212 in pkg/cmd/config/init/init.go

View check run for this annotation

Codecov / codecov/patch

pkg/cmd/config/init/init.go#L212

Added line #L212 was not covered by tests
}

dWorkspace := ""
wsString := make([]string, len(ws))
for i := range ws {
wsString[i] = fmt.Sprintf("%s - %s", ws[i].ID, ws[i].Name)

if ws[i].ID == config.GetString(cmdutil.CONF_WORKSPACE) {
dWorkspace = wsString[i]
}
}

w := ""
if w, err = i.AskFromOptions("Choose default Workspace:",
wsString, dWorkspace); err != nil {
return err

Check warning on line 228 in pkg/cmd/config/init/init.go

View check run for this annotation

Codecov / codecov/patch

pkg/cmd/config/init/init.go#L228

Added line #L228 was not covered by tests
}
config.SetString(cmdutil.CONF_WORKSPACE,
strings.TrimSpace(w[0:strings.Index(w, " - ")]))
return err
}

func updateInt(ui ui.UI, config cmdutil.Config, param, desc string) error {
value := config.GetInt(param)
value, err := ui.AskForInt(desc, value)
Expand Down

0 comments on commit 87ae700

Please sign in to comment.