@@ -40,56 +40,13 @@ func NewCmdInit(f cmdutil.Factory) *cobra.Command {
40
40
return err
41
41
}
42
42
43
- ws , err := c .GetWorkspaces (api.GetWorkspaces {})
44
- if err != nil {
43
+ if err := setWorkspace (c , config , i ); err != nil {
45
44
return err
46
45
}
47
46
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 {
61
48
return err
62
49
}
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 , " - " )]))
93
50
94
51
if err := updateFlag (i , config , cmdutil .CONF_ALLOW_NAME_FOR_ID ,
95
52
"Should try to find projects/clients/users/tasks/tags by their names?" ,
@@ -217,6 +174,64 @@ func NewCmdInit(f cmdutil.Factory) *cobra.Command {
217
174
return cmd
218
175
}
219
176
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
+
220
235
func updateInt (ui ui.UI , config cmdutil.Config , param , desc string ) error {
221
236
value := config .GetInt (param )
222
237
value , err := ui .AskForInt (desc , value )
0 commit comments