|
7 | 7 | "reflect" |
8 | 8 |
|
9 | 9 | "github.com/scaleway/scaleway-cli/v2/core" |
| 10 | + "github.com/scaleway/scaleway-cli/v2/internal/interactive" |
10 | 11 | "github.com/scaleway/scaleway-cli/v2/internal/passwordgenerator" |
11 | 12 | "github.com/scaleway/scaleway-sdk-go/api/rdb/v1" |
12 | 13 | "github.com/scaleway/scaleway-sdk-go/scw" |
@@ -170,34 +171,48 @@ func userUpdateBuilder(c *core.Command) *core.Command { |
170 | 171 | api := rdb.NewAPI(client) |
171 | 172 |
|
172 | 173 | customRequest := argsI.(*rdbUpdateUserRequestCustom) |
173 | | - |
174 | 174 | updateUserRequest := customRequest.UpdateUserRequest |
175 | 175 |
|
176 | 176 | var err error |
177 | | - if customRequest.GeneratePassword && customRequest.Password == nil { |
178 | | - updateUserRequest.Password = new(string) |
179 | | - *updateUserRequest.Password, err = passwordgenerator.GeneratePassword(21, 1, 1, 1, 1) |
180 | | - if err != nil { |
181 | | - return nil, err |
182 | | - } |
183 | | - fmt.Printf("Your generated password is %v \n", *updateUserRequest.Password) |
184 | | - fmt.Printf("\n") |
185 | | - } |
186 | 177 |
|
187 | | - if !customRequest.GeneratePassword && customRequest.Password == nil { |
188 | | - return nil, errors.New( |
189 | | - "you must provide a password when generate-password is set to false", |
190 | | - ) |
| 178 | + if customRequest.GeneratePassword || customRequest.Password != nil { |
| 179 | + switch { |
| 180 | + case customRequest.GeneratePassword && customRequest.Password == nil: |
| 181 | + updateUserRequest.Password = new(string) |
| 182 | + pwd, err := passwordgenerator.GeneratePassword(21, 1, 1, 1, 1) |
| 183 | + if err != nil { |
| 184 | + return nil, err |
| 185 | + } |
| 186 | + *updateUserRequest.Password = pwd |
| 187 | + |
| 188 | + _, err = interactive.Println("Your generated password is", pwd) |
| 189 | + if err != nil { |
| 190 | + return nil, err |
| 191 | + } |
| 192 | + |
| 193 | + case !customRequest.GeneratePassword && customRequest.Password == nil: |
| 194 | + return nil, errors.New( |
| 195 | + "you must provide a password when generate-password is set to false", |
| 196 | + ) |
| 197 | + |
| 198 | + default: |
| 199 | + updateUserRequest.Password = customRequest.Password |
| 200 | + } |
191 | 201 | } |
192 | 202 |
|
193 | 203 | user, err := api.UpdateUser(updateUserRequest) |
194 | 204 | if err != nil { |
195 | 205 | return nil, err |
196 | 206 | } |
197 | 207 |
|
| 208 | + respPwd := "" |
| 209 | + if updateUserRequest.Password != nil { |
| 210 | + respPwd = *updateUserRequest.Password |
| 211 | + } |
| 212 | + |
198 | 213 | result := rdbUpdateUserResponseCustom{ |
199 | 214 | User: user, |
200 | | - Password: *updateUserRequest.Password, |
| 215 | + Password: respPwd, |
201 | 216 | } |
202 | 217 |
|
203 | 218 | return result, nil |
|
0 commit comments