github.com/grokify/go-ringcentral-client@v0.3.31/engagedigital/v1/client/api_users.go (about) 1 /* 2 * Engage Digital API 3 * 4 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) 5 * 6 * API version: 1.0 7 * Generated by: OpenAPI Generator (https://openapi-generator.tech) 8 */ 9 10 package engagedigital 11 12 import ( 13 "context" 14 "fmt" 15 "github.com/antihax/optional" 16 "io/ioutil" 17 "net/http" 18 "net/url" 19 "reflect" 20 "strings" 21 ) 22 23 // Linger please 24 var ( 25 _ context.Context 26 ) 27 28 type UsersApiService service 29 30 /* 31 UsersApiService Creating a user 32 This method creates a new user. In case of success it renders the created user, otherwise, it renders an error (422 HTTP code). 33 * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). 34 * @param email User email (mandatory). 35 * @param firstname User firstname (mandatory). 36 * @param lastname User lastname (mandatory). 37 * @param password User plain password (mandatory). 38 * @param roleId User role id (mandatory). 39 * @param optional nil or *CreateUserOpts - Optional Parameters: 40 * @param "CategoryIds" (optional.Interface of []string) - User list of category ids (multiple). 41 * @param "Enabled" (optional.Bool) - Whether the user is enabled or not (boolean). 42 * @param "ExternalId" (optional.String) - User external id, used for SSO. 43 * @param "Gender" (optional.String) - User gender (\"man\" or \"woman\"). 44 * @param "IdentityIds" (optional.Interface of []string) - User list of identity ids (multiple). 45 * @param "Locale" (optional.String) - Language for the user interface. 46 * @param "Nickname" (optional.String) - User nickname. 47 * @param "TeamIds" (optional.Interface of []string) - User list of team ids (multiple). 48 * @param "Timezone" (optional.String) - Use the timezone endpoint to get the timezone name (String), default is empty for domain timezone. 49 * @param "SpokenLanguages" (optional.Interface of []string) - List of locales corresponding to the languages spoken by the user (multiple). 50 @return User 51 */ 52 53 type CreateUserOpts struct { 54 CategoryIds optional.Interface 55 Enabled optional.Bool 56 ExternalId optional.String 57 Gender optional.String 58 IdentityIds optional.Interface 59 Locale optional.String 60 Nickname optional.String 61 TeamIds optional.Interface 62 Timezone optional.String 63 SpokenLanguages optional.Interface 64 } 65 66 func (a *UsersApiService) CreateUser(ctx context.Context, email string, firstname string, lastname string, password string, roleId string, localVarOptionals *CreateUserOpts) (User, *http.Response, error) { 67 var ( 68 localVarHttpMethod = http.MethodPost 69 localVarPostBody interface{} 70 localVarFormFileName string 71 localVarFileName string 72 localVarFileBytes []byte 73 localVarReturnValue User 74 ) 75 76 // create path and map variables 77 localVarPath := a.client.cfg.BasePath + "/users" 78 79 localVarHeaderParams := make(map[string]string) 80 localVarQueryParams := url.Values{} 81 localVarFormParams := url.Values{} 82 83 if localVarOptionals != nil && localVarOptionals.CategoryIds.IsSet() { 84 t := localVarOptionals.CategoryIds.Value() 85 if reflect.TypeOf(t).Kind() == reflect.Slice { 86 s := reflect.ValueOf(t) 87 for i := 0; i < s.Len(); i++ { 88 localVarQueryParams.Add("category_ids[]", parameterToString(s.Index(i), "multi")) 89 } 90 } else { 91 localVarQueryParams.Add("category_ids[]", parameterToString(t, "multi")) 92 } 93 } 94 localVarQueryParams.Add("email", parameterToString(email, "")) 95 if localVarOptionals != nil && localVarOptionals.Enabled.IsSet() { 96 localVarQueryParams.Add("enabled", parameterToString(localVarOptionals.Enabled.Value(), "")) 97 } 98 if localVarOptionals != nil && localVarOptionals.ExternalId.IsSet() { 99 localVarQueryParams.Add("external_id", parameterToString(localVarOptionals.ExternalId.Value(), "")) 100 } 101 localVarQueryParams.Add("firstname", parameterToString(firstname, "")) 102 if localVarOptionals != nil && localVarOptionals.Gender.IsSet() { 103 localVarQueryParams.Add("gender", parameterToString(localVarOptionals.Gender.Value(), "")) 104 } 105 if localVarOptionals != nil && localVarOptionals.IdentityIds.IsSet() { 106 t := localVarOptionals.IdentityIds.Value() 107 if reflect.TypeOf(t).Kind() == reflect.Slice { 108 s := reflect.ValueOf(t) 109 for i := 0; i < s.Len(); i++ { 110 localVarQueryParams.Add("identity_ids[]", parameterToString(s.Index(i), "multi")) 111 } 112 } else { 113 localVarQueryParams.Add("identity_ids[]", parameterToString(t, "multi")) 114 } 115 } 116 localVarQueryParams.Add("lastname", parameterToString(lastname, "")) 117 if localVarOptionals != nil && localVarOptionals.Locale.IsSet() { 118 localVarQueryParams.Add("locale", parameterToString(localVarOptionals.Locale.Value(), "")) 119 } 120 if localVarOptionals != nil && localVarOptionals.Nickname.IsSet() { 121 localVarQueryParams.Add("nickname", parameterToString(localVarOptionals.Nickname.Value(), "")) 122 } 123 localVarQueryParams.Add("password", parameterToString(password, "")) 124 localVarQueryParams.Add("role_id", parameterToString(roleId, "")) 125 if localVarOptionals != nil && localVarOptionals.TeamIds.IsSet() { 126 t := localVarOptionals.TeamIds.Value() 127 if reflect.TypeOf(t).Kind() == reflect.Slice { 128 s := reflect.ValueOf(t) 129 for i := 0; i < s.Len(); i++ { 130 localVarQueryParams.Add("team_ids[]", parameterToString(s.Index(i), "multi")) 131 } 132 } else { 133 localVarQueryParams.Add("team_ids[]", parameterToString(t, "multi")) 134 } 135 } 136 if localVarOptionals != nil && localVarOptionals.Timezone.IsSet() { 137 localVarQueryParams.Add("timezone", parameterToString(localVarOptionals.Timezone.Value(), "")) 138 } 139 if localVarOptionals != nil && localVarOptionals.SpokenLanguages.IsSet() { 140 t := localVarOptionals.SpokenLanguages.Value() 141 if reflect.TypeOf(t).Kind() == reflect.Slice { 142 s := reflect.ValueOf(t) 143 for i := 0; i < s.Len(); i++ { 144 localVarQueryParams.Add("spoken_languages[]", parameterToString(s.Index(i), "multi")) 145 } 146 } else { 147 localVarQueryParams.Add("spoken_languages[]", parameterToString(t, "multi")) 148 } 149 } 150 // to determine the Content-Type header 151 localVarHttpContentTypes := []string{} 152 153 // set Content-Type header 154 localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) 155 if localVarHttpContentType != "" { 156 localVarHeaderParams["Content-Type"] = localVarHttpContentType 157 } 158 159 // to determine the Accept header 160 localVarHttpHeaderAccepts := []string{"application/json"} 161 162 // set Accept header 163 localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) 164 if localVarHttpHeaderAccept != "" { 165 localVarHeaderParams["Accept"] = localVarHttpHeaderAccept 166 } 167 r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) 168 if err != nil { 169 return localVarReturnValue, nil, err 170 } 171 172 localVarHttpResponse, err := a.client.callAPI(r) 173 if err != nil || localVarHttpResponse == nil { 174 return localVarReturnValue, localVarHttpResponse, err 175 } 176 177 localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) 178 localVarHttpResponse.Body.Close() 179 if err != nil { 180 return localVarReturnValue, localVarHttpResponse, err 181 } 182 183 if localVarHttpResponse.StatusCode >= 300 { 184 newErr := GenericOpenAPIError{ 185 body: localVarBody, 186 error: localVarHttpResponse.Status, 187 } 188 if localVarHttpResponse.StatusCode == 200 { 189 var v User 190 err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) 191 if err != nil { 192 newErr.error = err.Error() 193 return localVarReturnValue, localVarHttpResponse, newErr 194 } 195 newErr.model = v 196 return localVarReturnValue, localVarHttpResponse, newErr 197 } 198 return localVarReturnValue, localVarHttpResponse, newErr 199 } 200 201 err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) 202 if err != nil { 203 newErr := GenericOpenAPIError{ 204 body: localVarBody, 205 error: err.Error(), 206 } 207 return localVarReturnValue, localVarHttpResponse, newErr 208 } 209 210 return localVarReturnValue, localVarHttpResponse, nil 211 } 212 213 /* 214 UsersApiService Deleting a user 215 This method deletes the given user. In case of success it renders the deleted user, otherwise, it renders an error (422 HTTP code). Authorization: only users that can update users. The user affiliated to the token must have at least all the permissions of the other user. If the user affiliated to the token has the manage_users_of_my_teams permission, the deleted user will need to belong to at least one of the teams he’s the leader of. 216 * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). 217 * @param userId 218 @return User 219 */ 220 func (a *UsersApiService) DeleteUser(ctx context.Context, userId string) (User, *http.Response, error) { 221 var ( 222 localVarHttpMethod = http.MethodDelete 223 localVarPostBody interface{} 224 localVarFormFileName string 225 localVarFileName string 226 localVarFileBytes []byte 227 localVarReturnValue User 228 ) 229 230 // create path and map variables 231 localVarPath := a.client.cfg.BasePath + "/users/{userId}" 232 localVarPath = strings.Replace(localVarPath, "{"+"userId"+"}", fmt.Sprintf("%v", userId), -1) 233 234 localVarHeaderParams := make(map[string]string) 235 localVarQueryParams := url.Values{} 236 localVarFormParams := url.Values{} 237 238 // to determine the Content-Type header 239 localVarHttpContentTypes := []string{} 240 241 // set Content-Type header 242 localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) 243 if localVarHttpContentType != "" { 244 localVarHeaderParams["Content-Type"] = localVarHttpContentType 245 } 246 247 // to determine the Accept header 248 localVarHttpHeaderAccepts := []string{"application/json"} 249 250 // set Accept header 251 localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) 252 if localVarHttpHeaderAccept != "" { 253 localVarHeaderParams["Accept"] = localVarHttpHeaderAccept 254 } 255 r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) 256 if err != nil { 257 return localVarReturnValue, nil, err 258 } 259 260 localVarHttpResponse, err := a.client.callAPI(r) 261 if err != nil || localVarHttpResponse == nil { 262 return localVarReturnValue, localVarHttpResponse, err 263 } 264 265 localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) 266 localVarHttpResponse.Body.Close() 267 if err != nil { 268 return localVarReturnValue, localVarHttpResponse, err 269 } 270 271 if localVarHttpResponse.StatusCode >= 300 { 272 newErr := GenericOpenAPIError{ 273 body: localVarBody, 274 error: localVarHttpResponse.Status, 275 } 276 if localVarHttpResponse.StatusCode == 200 { 277 var v User 278 err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) 279 if err != nil { 280 newErr.error = err.Error() 281 return localVarReturnValue, localVarHttpResponse, newErr 282 } 283 newErr.model = v 284 return localVarReturnValue, localVarHttpResponse, newErr 285 } 286 return localVarReturnValue, localVarHttpResponse, newErr 287 } 288 289 err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) 290 if err != nil { 291 newErr := GenericOpenAPIError{ 292 body: localVarBody, 293 error: err.Error(), 294 } 295 return localVarReturnValue, localVarHttpResponse, newErr 296 } 297 298 return localVarReturnValue, localVarHttpResponse, nil 299 } 300 301 /* 302 UsersApiService Getting all users 303 This method renders users ordered by creation date (descending). Authorization: only users that can view users. If the user affiliated to the token has the manage_users_of_my_teams permission, only the users belonging to at least one of the teams he’s the leader of will be returned. 304 * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). 305 * @param optional nil or *GetAllUsersOpts - Optional Parameters: 306 * @param "Email" (optional.String) - To filter users on given email. 307 * @param "CategoryId" (optional.String) - To filter users on given category id. 308 * @param "IdentityId" (optional.String) - To filter users on given identity id. 309 * @param "ExternalId" (optional.String) - To filter users on given external id. 310 * @param "RoleId" (optional.String) - To filter users on given role id. 311 * @param "TeamId" (optional.String) - To filter users on given team id. 312 * @param "Offset" (optional.Int32) - The record index to start. Default value is 0. 313 * @param "Limit" (optional.Int32) - The max number of records to return. Default value is 30, max value is 150. 314 @return GetAllUsersResponse 315 */ 316 317 type GetAllUsersOpts struct { 318 Email optional.String 319 CategoryId optional.String 320 IdentityId optional.String 321 ExternalId optional.String 322 RoleId optional.String 323 TeamId optional.String 324 Offset optional.Int32 325 Limit optional.Int32 326 } 327 328 func (a *UsersApiService) GetAllUsers(ctx context.Context, localVarOptionals *GetAllUsersOpts) (GetAllUsersResponse, *http.Response, error) { 329 var ( 330 localVarHttpMethod = http.MethodGet 331 localVarPostBody interface{} 332 localVarFormFileName string 333 localVarFileName string 334 localVarFileBytes []byte 335 localVarReturnValue GetAllUsersResponse 336 ) 337 338 // create path and map variables 339 localVarPath := a.client.cfg.BasePath + "/users" 340 341 localVarHeaderParams := make(map[string]string) 342 localVarQueryParams := url.Values{} 343 localVarFormParams := url.Values{} 344 345 if localVarOptionals != nil && localVarOptionals.Email.IsSet() { 346 localVarQueryParams.Add("email", parameterToString(localVarOptionals.Email.Value(), "")) 347 } 348 if localVarOptionals != nil && localVarOptionals.CategoryId.IsSet() { 349 localVarQueryParams.Add("category_id", parameterToString(localVarOptionals.CategoryId.Value(), "")) 350 } 351 if localVarOptionals != nil && localVarOptionals.IdentityId.IsSet() { 352 localVarQueryParams.Add("identity_id", parameterToString(localVarOptionals.IdentityId.Value(), "")) 353 } 354 if localVarOptionals != nil && localVarOptionals.ExternalId.IsSet() { 355 localVarQueryParams.Add("external_id", parameterToString(localVarOptionals.ExternalId.Value(), "")) 356 } 357 if localVarOptionals != nil && localVarOptionals.RoleId.IsSet() { 358 localVarQueryParams.Add("role_id", parameterToString(localVarOptionals.RoleId.Value(), "")) 359 } 360 if localVarOptionals != nil && localVarOptionals.TeamId.IsSet() { 361 localVarQueryParams.Add("team_id", parameterToString(localVarOptionals.TeamId.Value(), "")) 362 } 363 if localVarOptionals != nil && localVarOptionals.Offset.IsSet() { 364 localVarQueryParams.Add("offset", parameterToString(localVarOptionals.Offset.Value(), "")) 365 } 366 if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { 367 localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) 368 } 369 // to determine the Content-Type header 370 localVarHttpContentTypes := []string{} 371 372 // set Content-Type header 373 localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) 374 if localVarHttpContentType != "" { 375 localVarHeaderParams["Content-Type"] = localVarHttpContentType 376 } 377 378 // to determine the Accept header 379 localVarHttpHeaderAccepts := []string{"application/json"} 380 381 // set Accept header 382 localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) 383 if localVarHttpHeaderAccept != "" { 384 localVarHeaderParams["Accept"] = localVarHttpHeaderAccept 385 } 386 r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) 387 if err != nil { 388 return localVarReturnValue, nil, err 389 } 390 391 localVarHttpResponse, err := a.client.callAPI(r) 392 if err != nil || localVarHttpResponse == nil { 393 return localVarReturnValue, localVarHttpResponse, err 394 } 395 396 localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) 397 localVarHttpResponse.Body.Close() 398 if err != nil { 399 return localVarReturnValue, localVarHttpResponse, err 400 } 401 402 if localVarHttpResponse.StatusCode >= 300 { 403 newErr := GenericOpenAPIError{ 404 body: localVarBody, 405 error: localVarHttpResponse.Status, 406 } 407 if localVarHttpResponse.StatusCode == 200 { 408 var v GetAllUsersResponse 409 err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) 410 if err != nil { 411 newErr.error = err.Error() 412 return localVarReturnValue, localVarHttpResponse, newErr 413 } 414 newErr.model = v 415 return localVarReturnValue, localVarHttpResponse, newErr 416 } 417 return localVarReturnValue, localVarHttpResponse, newErr 418 } 419 420 err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) 421 if err != nil { 422 newErr := GenericOpenAPIError{ 423 body: localVarBody, 424 error: err.Error(), 425 } 426 return localVarReturnValue, localVarHttpResponse, newErr 427 } 428 429 return localVarReturnValue, localVarHttpResponse, nil 430 } 431 432 /* 433 UsersApiService Getting a user from its id 434 This method renders a user from given id. 435 * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). 436 * @param userId 437 @return User 438 */ 439 func (a *UsersApiService) GetUser(ctx context.Context, userId string) (User, *http.Response, error) { 440 var ( 441 localVarHttpMethod = http.MethodGet 442 localVarPostBody interface{} 443 localVarFormFileName string 444 localVarFileName string 445 localVarFileBytes []byte 446 localVarReturnValue User 447 ) 448 449 // create path and map variables 450 localVarPath := a.client.cfg.BasePath + "/users/{userId}" 451 localVarPath = strings.Replace(localVarPath, "{"+"userId"+"}", fmt.Sprintf("%v", userId), -1) 452 453 localVarHeaderParams := make(map[string]string) 454 localVarQueryParams := url.Values{} 455 localVarFormParams := url.Values{} 456 457 // to determine the Content-Type header 458 localVarHttpContentTypes := []string{} 459 460 // set Content-Type header 461 localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) 462 if localVarHttpContentType != "" { 463 localVarHeaderParams["Content-Type"] = localVarHttpContentType 464 } 465 466 // to determine the Accept header 467 localVarHttpHeaderAccepts := []string{"application/json"} 468 469 // set Accept header 470 localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) 471 if localVarHttpHeaderAccept != "" { 472 localVarHeaderParams["Accept"] = localVarHttpHeaderAccept 473 } 474 r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) 475 if err != nil { 476 return localVarReturnValue, nil, err 477 } 478 479 localVarHttpResponse, err := a.client.callAPI(r) 480 if err != nil || localVarHttpResponse == nil { 481 return localVarReturnValue, localVarHttpResponse, err 482 } 483 484 localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) 485 localVarHttpResponse.Body.Close() 486 if err != nil { 487 return localVarReturnValue, localVarHttpResponse, err 488 } 489 490 if localVarHttpResponse.StatusCode >= 300 { 491 newErr := GenericOpenAPIError{ 492 body: localVarBody, 493 error: localVarHttpResponse.Status, 494 } 495 if localVarHttpResponse.StatusCode == 200 { 496 var v User 497 err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) 498 if err != nil { 499 newErr.error = err.Error() 500 return localVarReturnValue, localVarHttpResponse, newErr 501 } 502 newErr.model = v 503 return localVarReturnValue, localVarHttpResponse, newErr 504 } 505 return localVarReturnValue, localVarHttpResponse, newErr 506 } 507 508 err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) 509 if err != nil { 510 newErr := GenericOpenAPIError{ 511 body: localVarBody, 512 error: err.Error(), 513 } 514 return localVarReturnValue, localVarHttpResponse, newErr 515 } 516 517 return localVarReturnValue, localVarHttpResponse, nil 518 } 519 520 /* 521 UsersApiService Inviting a user 522 This method invites a new user. In case of success it renders the created user, otherwise, it renders an error (422 HTTP code). Authorization: only users that can invite other users. If the user affiliated to the token has the manage_users_of_my_teams permission, the invited user will need to belong to at least one of the teams he’s the leader of. It will not be possible to assign the user to other teams. 523 * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). 524 * @param email User email (mandatory). 525 * @param firstname User firstname (mandatory). 526 * @param lastname User lastname (mandatory). 527 * @param roleId User role id (mandatory). 528 * @param optional nil or *InviteUserOpts - Optional Parameters: 529 * @param "CategoryIds" (optional.Interface of []string) - User list of category ids (multiple). 530 * @param "Enabled" (optional.Bool) - Whether the user is enabled or not (boolean). 531 * @param "ExternalId" (optional.String) - User external id. 532 * @param "Gender" (optional.String) - User gender (\"man\" or \"woman\"). 533 * @param "IdentityIds" (optional.Interface of []string) - User list of identity ids (multiple). 534 * @param "Locale" (optional.String) - Language for the user interface. 535 * @param "Nickname" (optional.String) - User nickname. 536 * @param "TeamIds" (optional.Interface of []string) - User list of team ids (multiple). 537 * @param "Timezone" (optional.String) - Use the timezone endpoint to get the timezone name (String), default is empty for 538 * @param "SpokenLanguages" (optional.Interface of []string) - List of locales corresponding to the languages spoken by the user (multiple). 539 @return User 540 */ 541 542 type InviteUserOpts struct { 543 CategoryIds optional.Interface 544 Enabled optional.Bool 545 ExternalId optional.String 546 Gender optional.String 547 IdentityIds optional.Interface 548 Locale optional.String 549 Nickname optional.String 550 TeamIds optional.Interface 551 Timezone optional.String 552 SpokenLanguages optional.Interface 553 } 554 555 func (a *UsersApiService) InviteUser(ctx context.Context, email string, firstname string, lastname string, roleId string, localVarOptionals *InviteUserOpts) (User, *http.Response, error) { 556 var ( 557 localVarHttpMethod = http.MethodPost 558 localVarPostBody interface{} 559 localVarFormFileName string 560 localVarFileName string 561 localVarFileBytes []byte 562 localVarReturnValue User 563 ) 564 565 // create path and map variables 566 localVarPath := a.client.cfg.BasePath + "/users/invite" 567 568 localVarHeaderParams := make(map[string]string) 569 localVarQueryParams := url.Values{} 570 localVarFormParams := url.Values{} 571 572 if localVarOptionals != nil && localVarOptionals.CategoryIds.IsSet() { 573 t := localVarOptionals.CategoryIds.Value() 574 if reflect.TypeOf(t).Kind() == reflect.Slice { 575 s := reflect.ValueOf(t) 576 for i := 0; i < s.Len(); i++ { 577 localVarQueryParams.Add("category_ids", parameterToString(s.Index(i), "multi")) 578 } 579 } else { 580 localVarQueryParams.Add("category_ids", parameterToString(t, "multi")) 581 } 582 } 583 localVarQueryParams.Add("email", parameterToString(email, "")) 584 if localVarOptionals != nil && localVarOptionals.Enabled.IsSet() { 585 localVarQueryParams.Add("enabled", parameterToString(localVarOptionals.Enabled.Value(), "")) 586 } 587 if localVarOptionals != nil && localVarOptionals.ExternalId.IsSet() { 588 localVarQueryParams.Add("external_id", parameterToString(localVarOptionals.ExternalId.Value(), "")) 589 } 590 localVarQueryParams.Add("firstname", parameterToString(firstname, "")) 591 if localVarOptionals != nil && localVarOptionals.Gender.IsSet() { 592 localVarQueryParams.Add("gender", parameterToString(localVarOptionals.Gender.Value(), "")) 593 } 594 if localVarOptionals != nil && localVarOptionals.IdentityIds.IsSet() { 595 t := localVarOptionals.IdentityIds.Value() 596 if reflect.TypeOf(t).Kind() == reflect.Slice { 597 s := reflect.ValueOf(t) 598 for i := 0; i < s.Len(); i++ { 599 localVarQueryParams.Add("identity_ids", parameterToString(s.Index(i), "multi")) 600 } 601 } else { 602 localVarQueryParams.Add("identity_ids", parameterToString(t, "multi")) 603 } 604 } 605 localVarQueryParams.Add("lastname", parameterToString(lastname, "")) 606 if localVarOptionals != nil && localVarOptionals.Locale.IsSet() { 607 localVarQueryParams.Add("locale", parameterToString(localVarOptionals.Locale.Value(), "")) 608 } 609 if localVarOptionals != nil && localVarOptionals.Nickname.IsSet() { 610 localVarQueryParams.Add("nickname", parameterToString(localVarOptionals.Nickname.Value(), "")) 611 } 612 localVarQueryParams.Add("role_id", parameterToString(roleId, "")) 613 if localVarOptionals != nil && localVarOptionals.TeamIds.IsSet() { 614 t := localVarOptionals.TeamIds.Value() 615 if reflect.TypeOf(t).Kind() == reflect.Slice { 616 s := reflect.ValueOf(t) 617 for i := 0; i < s.Len(); i++ { 618 localVarQueryParams.Add("team_ids", parameterToString(s.Index(i), "multi")) 619 } 620 } else { 621 localVarQueryParams.Add("team_ids", parameterToString(t, "multi")) 622 } 623 } 624 if localVarOptionals != nil && localVarOptionals.Timezone.IsSet() { 625 localVarQueryParams.Add("timezone", parameterToString(localVarOptionals.Timezone.Value(), "")) 626 } 627 if localVarOptionals != nil && localVarOptionals.SpokenLanguages.IsSet() { 628 t := localVarOptionals.SpokenLanguages.Value() 629 if reflect.TypeOf(t).Kind() == reflect.Slice { 630 s := reflect.ValueOf(t) 631 for i := 0; i < s.Len(); i++ { 632 localVarQueryParams.Add("spoken_languages", parameterToString(s.Index(i), "multi")) 633 } 634 } else { 635 localVarQueryParams.Add("spoken_languages", parameterToString(t, "multi")) 636 } 637 } 638 // to determine the Content-Type header 639 localVarHttpContentTypes := []string{} 640 641 // set Content-Type header 642 localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) 643 if localVarHttpContentType != "" { 644 localVarHeaderParams["Content-Type"] = localVarHttpContentType 645 } 646 647 // to determine the Accept header 648 localVarHttpHeaderAccepts := []string{"application/json"} 649 650 // set Accept header 651 localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) 652 if localVarHttpHeaderAccept != "" { 653 localVarHeaderParams["Accept"] = localVarHttpHeaderAccept 654 } 655 r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) 656 if err != nil { 657 return localVarReturnValue, nil, err 658 } 659 660 localVarHttpResponse, err := a.client.callAPI(r) 661 if err != nil || localVarHttpResponse == nil { 662 return localVarReturnValue, localVarHttpResponse, err 663 } 664 665 localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) 666 localVarHttpResponse.Body.Close() 667 if err != nil { 668 return localVarReturnValue, localVarHttpResponse, err 669 } 670 671 if localVarHttpResponse.StatusCode >= 300 { 672 newErr := GenericOpenAPIError{ 673 body: localVarBody, 674 error: localVarHttpResponse.Status, 675 } 676 if localVarHttpResponse.StatusCode == 200 { 677 var v User 678 err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) 679 if err != nil { 680 newErr.error = err.Error() 681 return localVarReturnValue, localVarHttpResponse, newErr 682 } 683 newErr.model = v 684 return localVarReturnValue, localVarHttpResponse, newErr 685 } 686 return localVarReturnValue, localVarHttpResponse, newErr 687 } 688 689 err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) 690 if err != nil { 691 newErr := GenericOpenAPIError{ 692 body: localVarBody, 693 error: err.Error(), 694 } 695 return localVarReturnValue, localVarHttpResponse, newErr 696 } 697 698 return localVarReturnValue, localVarHttpResponse, nil 699 } 700 701 /* 702 UsersApiService Updating a user 703 This method updates users from given attributes and renders it in case of success. Authorization: only users that can update users. If the user affiliated to the token has the `manage_users_of_my_teams` permission, the updated user will need to belong to at least one of the teams he’s the leader of. The teams the user affiliated to the token is the leader of will be the only ones which can be added or removed. 704 * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). 705 * @param userId 706 * @param optional nil or *UpdateUserOpts - Optional Parameters: 707 * @param "CategoryIds" (optional.Interface of []string) - User list of category ids (multiple). 708 * @param "Email" (optional.String) - User email. 709 * @param "Enabled" (optional.Bool) - Whether the user is enabled or not (boolean). 710 * @param "ExternalId" (optional.String) - User external id, used for SSO. 711 * @param "Firstname" (optional.String) - User firstname. 712 * @param "Gender" (optional.String) - User gender (\"man\" or \"woman\"). 713 * @param "IdentityIds" (optional.Interface of []string) - User list of identity ids (multiple). 714 * @param "Lastname" (optional.String) - User lastname. 715 * @param "Locale" (optional.String) - Language for the user interface. 716 * @param "Nickname" (optional.String) - User nickname. 717 * @param "Password" (optional.String) - User plain password. 718 * @param "RoleId" (optional.String) - User role id. 719 * @param "TeamIds" (optional.Interface of []string) - User list of team ids (multiple). 720 * @param "Timezone" (optional.String) - Use the timezone endpoint to get the timezone name (String), default is empty for domain timezone. 721 * @param "SpokenLanguages" (optional.Interface of []string) - List of locales corresponding to the languages spoken by the user (multiple). 722 @return User 723 */ 724 725 type UpdateUserOpts struct { 726 CategoryIds optional.Interface 727 Email optional.String 728 Enabled optional.Bool 729 ExternalId optional.String 730 Firstname optional.String 731 Gender optional.String 732 IdentityIds optional.Interface 733 Lastname optional.String 734 Locale optional.String 735 Nickname optional.String 736 Password optional.String 737 RoleId optional.String 738 TeamIds optional.Interface 739 Timezone optional.String 740 SpokenLanguages optional.Interface 741 } 742 743 func (a *UsersApiService) UpdateUser(ctx context.Context, userId string, localVarOptionals *UpdateUserOpts) (User, *http.Response, error) { 744 var ( 745 localVarHttpMethod = http.MethodPut 746 localVarPostBody interface{} 747 localVarFormFileName string 748 localVarFileName string 749 localVarFileBytes []byte 750 localVarReturnValue User 751 ) 752 753 // create path and map variables 754 localVarPath := a.client.cfg.BasePath + "/users/{userId}" 755 localVarPath = strings.Replace(localVarPath, "{"+"userId"+"}", fmt.Sprintf("%v", userId), -1) 756 757 localVarHeaderParams := make(map[string]string) 758 localVarQueryParams := url.Values{} 759 localVarFormParams := url.Values{} 760 761 if localVarOptionals != nil && localVarOptionals.CategoryIds.IsSet() { 762 t := localVarOptionals.CategoryIds.Value() 763 if reflect.TypeOf(t).Kind() == reflect.Slice { 764 s := reflect.ValueOf(t) 765 for i := 0; i < s.Len(); i++ { 766 localVarQueryParams.Add("category_ids[]", parameterToString(s.Index(i), "multi")) 767 } 768 } else { 769 localVarQueryParams.Add("category_ids[]", parameterToString(t, "multi")) 770 } 771 } 772 if localVarOptionals != nil && localVarOptionals.Email.IsSet() { 773 localVarQueryParams.Add("email", parameterToString(localVarOptionals.Email.Value(), "")) 774 } 775 if localVarOptionals != nil && localVarOptionals.Enabled.IsSet() { 776 localVarQueryParams.Add("enabled", parameterToString(localVarOptionals.Enabled.Value(), "")) 777 } 778 if localVarOptionals != nil && localVarOptionals.ExternalId.IsSet() { 779 localVarQueryParams.Add("external_id", parameterToString(localVarOptionals.ExternalId.Value(), "")) 780 } 781 if localVarOptionals != nil && localVarOptionals.Firstname.IsSet() { 782 localVarQueryParams.Add("firstname", parameterToString(localVarOptionals.Firstname.Value(), "")) 783 } 784 if localVarOptionals != nil && localVarOptionals.Gender.IsSet() { 785 localVarQueryParams.Add("gender", parameterToString(localVarOptionals.Gender.Value(), "")) 786 } 787 if localVarOptionals != nil && localVarOptionals.IdentityIds.IsSet() { 788 t := localVarOptionals.IdentityIds.Value() 789 if reflect.TypeOf(t).Kind() == reflect.Slice { 790 s := reflect.ValueOf(t) 791 for i := 0; i < s.Len(); i++ { 792 localVarQueryParams.Add("identity_ids[]", parameterToString(s.Index(i), "multi")) 793 } 794 } else { 795 localVarQueryParams.Add("identity_ids[]", parameterToString(t, "multi")) 796 } 797 } 798 if localVarOptionals != nil && localVarOptionals.Lastname.IsSet() { 799 localVarQueryParams.Add("lastname", parameterToString(localVarOptionals.Lastname.Value(), "")) 800 } 801 if localVarOptionals != nil && localVarOptionals.Locale.IsSet() { 802 localVarQueryParams.Add("locale", parameterToString(localVarOptionals.Locale.Value(), "")) 803 } 804 if localVarOptionals != nil && localVarOptionals.Nickname.IsSet() { 805 localVarQueryParams.Add("nickname", parameterToString(localVarOptionals.Nickname.Value(), "")) 806 } 807 if localVarOptionals != nil && localVarOptionals.Password.IsSet() { 808 localVarQueryParams.Add("password", parameterToString(localVarOptionals.Password.Value(), "")) 809 } 810 if localVarOptionals != nil && localVarOptionals.RoleId.IsSet() { 811 localVarQueryParams.Add("role_id", parameterToString(localVarOptionals.RoleId.Value(), "")) 812 } 813 if localVarOptionals != nil && localVarOptionals.TeamIds.IsSet() { 814 t := localVarOptionals.TeamIds.Value() 815 if reflect.TypeOf(t).Kind() == reflect.Slice { 816 s := reflect.ValueOf(t) 817 for i := 0; i < s.Len(); i++ { 818 localVarQueryParams.Add("team_ids[]", parameterToString(s.Index(i), "multi")) 819 } 820 } else { 821 localVarQueryParams.Add("team_ids[]", parameterToString(t, "multi")) 822 } 823 } 824 if localVarOptionals != nil && localVarOptionals.Timezone.IsSet() { 825 localVarQueryParams.Add("timezone", parameterToString(localVarOptionals.Timezone.Value(), "")) 826 } 827 if localVarOptionals != nil && localVarOptionals.SpokenLanguages.IsSet() { 828 t := localVarOptionals.SpokenLanguages.Value() 829 if reflect.TypeOf(t).Kind() == reflect.Slice { 830 s := reflect.ValueOf(t) 831 for i := 0; i < s.Len(); i++ { 832 localVarQueryParams.Add("spoken_languages[]", parameterToString(s.Index(i), "multi")) 833 } 834 } else { 835 localVarQueryParams.Add("spoken_languages[]", parameterToString(t, "multi")) 836 } 837 } 838 // to determine the Content-Type header 839 localVarHttpContentTypes := []string{} 840 841 // set Content-Type header 842 localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) 843 if localVarHttpContentType != "" { 844 localVarHeaderParams["Content-Type"] = localVarHttpContentType 845 } 846 847 // to determine the Accept header 848 localVarHttpHeaderAccepts := []string{"application/json"} 849 850 // set Accept header 851 localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) 852 if localVarHttpHeaderAccept != "" { 853 localVarHeaderParams["Accept"] = localVarHttpHeaderAccept 854 } 855 r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) 856 if err != nil { 857 return localVarReturnValue, nil, err 858 } 859 860 localVarHttpResponse, err := a.client.callAPI(r) 861 if err != nil || localVarHttpResponse == nil { 862 return localVarReturnValue, localVarHttpResponse, err 863 } 864 865 localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) 866 localVarHttpResponse.Body.Close() 867 if err != nil { 868 return localVarReturnValue, localVarHttpResponse, err 869 } 870 871 if localVarHttpResponse.StatusCode >= 300 { 872 newErr := GenericOpenAPIError{ 873 body: localVarBody, 874 error: localVarHttpResponse.Status, 875 } 876 if localVarHttpResponse.StatusCode == 200 { 877 var v User 878 err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) 879 if err != nil { 880 newErr.error = err.Error() 881 return localVarReturnValue, localVarHttpResponse, newErr 882 } 883 newErr.model = v 884 return localVarReturnValue, localVarHttpResponse, newErr 885 } 886 return localVarReturnValue, localVarHttpResponse, newErr 887 } 888 889 err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) 890 if err != nil { 891 newErr := GenericOpenAPIError{ 892 body: localVarBody, 893 error: err.Error(), 894 } 895 return localVarReturnValue, localVarHttpResponse, newErr 896 } 897 898 return localVarReturnValue, localVarHttpResponse, nil 899 }