Skip to content

Commit f457f73

Browse files
committed
feat: extract complexity
1 parent 66227eb commit f457f73

File tree

1 file changed

+60
-45
lines changed

1 file changed

+60
-45
lines changed

pkg/cmd/config/init/init.go

+60-45
Original file line numberDiff line numberDiff line change
@@ -40,56 +40,13 @@ func NewCmdInit(f cmdutil.Factory) *cobra.Command {
4040
return err
4141
}
4242

43-
ws, err := c.GetWorkspaces(api.GetWorkspaces{})
44-
if err != nil {
43+
if err := setWorkspace(c, config, i); err != nil {
4544
return err
4645
}
4746

48-
dWorkspace := ""
49-
wsString := make([]string, len(ws))
50-
for i := range ws {
51-
wsString[i] = fmt.Sprintf("%s - %s", ws[i].ID, ws[i].Name)
52-
53-
if ws[i].ID == config.GetString(cmdutil.CONF_WORKSPACE) {
54-
dWorkspace = wsString[i]
55-
}
56-
}
57-
58-
w := ""
59-
if w, err = i.AskFromOptions("Choose default Workspace:",
60-
wsString, dWorkspace); err != nil {
47+
if err := setUser(c, config, i); err != nil {
6148
return err
6249
}
63-
config.SetString(cmdutil.CONF_WORKSPACE,
64-
strings.TrimSpace(w[0:strings.Index(w, " - ")]))
65-
66-
users, err := c.WorkspaceUsers(api.WorkspaceUsersParam{
67-
Workspace: config.GetString(cmdutil.CONF_WORKSPACE),
68-
PaginationParam: api.AllPages(),
69-
})
70-
71-
if err != nil {
72-
return err
73-
}
74-
75-
userId := config.GetString(cmdutil.CONF_USER_ID)
76-
dUser := ""
77-
usersString := make([]string, len(users))
78-
for i := range users {
79-
usersString[i] = fmt.Sprintf("%s - %s", users[i].ID, users[i].Name)
80-
81-
if users[i].ID == userId {
82-
dUser = usersString[i]
83-
}
84-
}
85-
86-
userID := ""
87-
if userID, err = i.AskFromOptions(
88-
"Choose your user:", usersString, dUser); err != nil {
89-
return err
90-
}
91-
config.SetString(cmdutil.CONF_USER_ID,
92-
strings.TrimSpace(userID[0:strings.Index(userID, " - ")]))
9350

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

177+
func setUser(c api.Client, config cmdutil.Config, i ui.UI) error {
178+
users, err := c.WorkspaceUsers(api.WorkspaceUsersParam{
179+
Workspace: config.GetString(cmdutil.CONF_WORKSPACE),
180+
PaginationParam: api.AllPages(),
181+
})
182+
183+
if err != nil {
184+
return err
185+
}
186+
187+
userId := config.GetString(cmdutil.CONF_USER_ID)
188+
dUser := ""
189+
usersString := make([]string, len(users))
190+
for i := range users {
191+
usersString[i] = fmt.Sprintf("%s - %s", users[i].ID, users[i].Name)
192+
193+
if users[i].ID == userId {
194+
dUser = usersString[i]
195+
}
196+
}
197+
198+
userID := ""
199+
if userID, err = i.AskFromOptions(
200+
"Choose your user:", usersString, dUser); err != nil {
201+
return err
202+
}
203+
204+
config.SetString(cmdutil.CONF_USER_ID,
205+
strings.TrimSpace(userID[0:strings.Index(userID, " - ")]))
206+
return nil
207+
}
208+
209+
func setWorkspace(c api.Client, config cmdutil.Config, i ui.UI) error {
210+
ws, err := c.GetWorkspaces(api.GetWorkspaces{})
211+
if err != nil {
212+
return err
213+
}
214+
215+
dWorkspace := ""
216+
wsString := make([]string, len(ws))
217+
for i := range ws {
218+
wsString[i] = fmt.Sprintf("%s - %s", ws[i].ID, ws[i].Name)
219+
220+
if ws[i].ID == config.GetString(cmdutil.CONF_WORKSPACE) {
221+
dWorkspace = wsString[i]
222+
}
223+
}
224+
225+
w := ""
226+
if w, err = i.AskFromOptions("Choose default Workspace:",
227+
wsString, dWorkspace); err != nil {
228+
return err
229+
}
230+
config.SetString(cmdutil.CONF_WORKSPACE,
231+
strings.TrimSpace(w[0:strings.Index(w, " - ")]))
232+
return err
233+
}
234+
220235
func updateInt(ui ui.UI, config cmdutil.Config, param, desc string) error {
221236
value := config.GetInt(param)
222237
value, err := ui.AskForInt(desc, value)

0 commit comments

Comments
 (0)