github.com/grokify/go-ringcentral-client@v0.3.31/office/v1/client/api_user_contacts.go (about) 1 /* 2 * RingCentral Connect Platform API Explorer 3 * 4 * <p>This is a beta interactive API explorer for the RingCentral Connect Platform. To use this service, you will need to have an account with the proper credentials to generate an OAuth2 access token.</p><p><h2>Quick Start</h2></p><ol><li>1) Go to <b>Authentication > /oauth/token</b></li><li>2) Enter <b>app_key, app_secret, username, password</b> fields and then click \"Try it out!\"</li><li>3) Upon success, your access_token is loaded and you can access any form requiring authorization.</li></ol><h2>Links</h2><ul><li><a href=\"https://github.com/ringcentral\" target=\"_blank\">RingCentral SDKs on Github</a></li><li><a href=\"mailto:devsupport@ringcentral.com\">RingCentral Developer Support Email</a></li></ul> 5 * 6 * API version: 1.0 7 * Generated by: OpenAPI Generator (https://openapi-generator.tech) 8 */ 9 10 package ringcentral 11 12 import ( 13 "context" 14 "fmt" 15 "github.com/antihax/optional" 16 "io/ioutil" 17 "net/http" 18 "net/url" 19 "strings" 20 ) 21 22 // Linger please 23 var ( 24 _ context.Context 25 ) 26 27 type UserContactsApiService service 28 29 /* 30 UserContactsApiService Get Favorite Contacts 31 * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). 32 * @param accountId Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session 33 * @param extensionId Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session 34 */ 35 func (a *UserContactsApiService) ContactFavorite(ctx context.Context, accountId string, extensionId string) (*http.Response, error) { 36 var ( 37 localVarHttpMethod = strings.ToUpper("Get") 38 localVarPostBody interface{} 39 localVarFormFileName string 40 localVarFileName string 41 localVarFileBytes []byte 42 ) 43 44 // create path and map variables 45 localVarPath := a.client.cfg.BasePath + "/restapi/v1.0/account/{accountId}/extension/{extensionId}/favorite" 46 localVarPath = strings.Replace(localVarPath, "{"+"accountId"+"}", fmt.Sprintf("%v", accountId), -1) 47 localVarPath = strings.Replace(localVarPath, "{"+"extensionId"+"}", fmt.Sprintf("%v", extensionId), -1) 48 49 localVarHeaderParams := make(map[string]string) 50 localVarQueryParams := url.Values{} 51 localVarFormParams := url.Values{} 52 53 // to determine the Content-Type header 54 localVarHttpContentTypes := []string{} 55 56 // set Content-Type header 57 localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) 58 if localVarHttpContentType != "" { 59 localVarHeaderParams["Content-Type"] = localVarHttpContentType 60 } 61 62 // to determine the Accept header 63 localVarHttpHeaderAccepts := []string{} 64 65 // set Accept header 66 localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) 67 if localVarHttpHeaderAccept != "" { 68 localVarHeaderParams["Accept"] = localVarHttpHeaderAccept 69 } 70 r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) 71 if err != nil { 72 return nil, err 73 } 74 75 localVarHttpResponse, err := a.client.callAPI(r) 76 if err != nil || localVarHttpResponse == nil { 77 return localVarHttpResponse, err 78 } 79 80 localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) 81 localVarHttpResponse.Body.Close() 82 if err != nil { 83 return localVarHttpResponse, err 84 } 85 86 if localVarHttpResponse.StatusCode >= 300 { 87 newErr := GenericOpenAPIError{ 88 body: localVarBody, 89 error: localVarHttpResponse.Status, 90 } 91 return localVarHttpResponse, newErr 92 } 93 94 return localVarHttpResponse, nil 95 } 96 97 /* 98 UserContactsApiService Create Contact 99 <p style='font-style:italic;'></p><p></p><h4>Required Permissions</h4><table class='fullwidth'><thead><tr><th>Permission</th><th>Description</th></tr></thead><tbody><tr><td class='code'>Contacts</td><td>Creating, viewing, editing and deleting user personal contacts</td></tr><tr><td class='code'>ReadContacts</td><td>Viewing user personal contacts</td></tr></tbody></table><h4>Usage Plan Group</h4><p>Heavy</p> 100 * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). 101 * @param accountId Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session 102 * @param extensionId Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session 103 * @param optional nil or *CreateContactOpts - Optional Parameters: 104 * @param "PersonalContactResource" (optional.Interface of PersonalContactResource) - 105 @return PersonalContactResource 106 */ 107 108 type CreateContactOpts struct { 109 PersonalContactResource optional.Interface 110 } 111 112 func (a *UserContactsApiService) CreateContact(ctx context.Context, accountId string, extensionId string, localVarOptionals *CreateContactOpts) (PersonalContactResource, *http.Response, error) { 113 var ( 114 localVarHttpMethod = strings.ToUpper("Post") 115 localVarPostBody interface{} 116 localVarFormFileName string 117 localVarFileName string 118 localVarFileBytes []byte 119 localVarReturnValue PersonalContactResource 120 ) 121 122 // create path and map variables 123 localVarPath := a.client.cfg.BasePath + "/restapi/v1.0/account/{accountId}/extension/{extensionId}/address-book/contact" 124 localVarPath = strings.Replace(localVarPath, "{"+"accountId"+"}", fmt.Sprintf("%v", accountId), -1) 125 localVarPath = strings.Replace(localVarPath, "{"+"extensionId"+"}", fmt.Sprintf("%v", extensionId), -1) 126 127 localVarHeaderParams := make(map[string]string) 128 localVarQueryParams := url.Values{} 129 localVarFormParams := url.Values{} 130 131 // to determine the Content-Type header 132 localVarHttpContentTypes := []string{"application/json"} 133 134 // set Content-Type header 135 localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) 136 if localVarHttpContentType != "" { 137 localVarHeaderParams["Content-Type"] = localVarHttpContentType 138 } 139 140 // to determine the Accept header 141 localVarHttpHeaderAccepts := []string{"application/json"} 142 143 // set Accept header 144 localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) 145 if localVarHttpHeaderAccept != "" { 146 localVarHeaderParams["Accept"] = localVarHttpHeaderAccept 147 } 148 // body params 149 if localVarOptionals != nil && localVarOptionals.PersonalContactResource.IsSet() { 150 localVarOptionalPersonalContactResource, localVarOptionalPersonalContactResourceok := localVarOptionals.PersonalContactResource.Value().(PersonalContactResource) 151 if !localVarOptionalPersonalContactResourceok { 152 return localVarReturnValue, nil, reportError("personalContactResource should be PersonalContactResource") 153 } 154 localVarPostBody = &localVarOptionalPersonalContactResource 155 } 156 157 r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) 158 if err != nil { 159 return localVarReturnValue, nil, err 160 } 161 162 localVarHttpResponse, err := a.client.callAPI(r) 163 if err != nil || localVarHttpResponse == nil { 164 return localVarReturnValue, localVarHttpResponse, err 165 } 166 167 localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) 168 localVarHttpResponse.Body.Close() 169 if err != nil { 170 return localVarReturnValue, localVarHttpResponse, err 171 } 172 173 if localVarHttpResponse.StatusCode >= 300 { 174 newErr := GenericOpenAPIError{ 175 body: localVarBody, 176 error: localVarHttpResponse.Status, 177 } 178 if localVarHttpResponse.StatusCode == 0 { 179 var v PersonalContactResource 180 err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) 181 if err != nil { 182 newErr.error = err.Error() 183 return localVarReturnValue, localVarHttpResponse, newErr 184 } 185 newErr.model = v 186 return localVarReturnValue, localVarHttpResponse, newErr 187 } 188 return localVarReturnValue, localVarHttpResponse, newErr 189 } 190 191 err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) 192 if err != nil { 193 newErr := GenericOpenAPIError{ 194 body: localVarBody, 195 error: err.Error(), 196 } 197 return localVarReturnValue, localVarHttpResponse, newErr 198 } 199 200 return localVarReturnValue, localVarHttpResponse, nil 201 } 202 203 /* 204 UserContactsApiService Update Favorite Contacts 205 * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). 206 * @param accountId Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session 207 * @param extensionId Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session 208 * @param optional nil or *CreateContactsOpts - Optional Parameters: 209 * @param "FavoriteCollection" (optional.Interface of FavoriteCollection) - 210 */ 211 212 type CreateContactsOpts struct { 213 FavoriteCollection optional.Interface 214 } 215 216 func (a *UserContactsApiService) CreateContacts(ctx context.Context, accountId string, extensionId string, localVarOptionals *CreateContactsOpts) (*http.Response, error) { 217 var ( 218 localVarHttpMethod = strings.ToUpper("Put") 219 localVarPostBody interface{} 220 localVarFormFileName string 221 localVarFileName string 222 localVarFileBytes []byte 223 ) 224 225 // create path and map variables 226 localVarPath := a.client.cfg.BasePath + "/restapi/v1.0/account/{accountId}/extension/{extensionId}/favorite" 227 localVarPath = strings.Replace(localVarPath, "{"+"accountId"+"}", fmt.Sprintf("%v", accountId), -1) 228 localVarPath = strings.Replace(localVarPath, "{"+"extensionId"+"}", fmt.Sprintf("%v", extensionId), -1) 229 230 localVarHeaderParams := make(map[string]string) 231 localVarQueryParams := url.Values{} 232 localVarFormParams := url.Values{} 233 234 // to determine the Content-Type header 235 localVarHttpContentTypes := []string{"application/json"} 236 237 // set Content-Type header 238 localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) 239 if localVarHttpContentType != "" { 240 localVarHeaderParams["Content-Type"] = localVarHttpContentType 241 } 242 243 // to determine the Accept header 244 localVarHttpHeaderAccepts := []string{} 245 246 // set Accept header 247 localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) 248 if localVarHttpHeaderAccept != "" { 249 localVarHeaderParams["Accept"] = localVarHttpHeaderAccept 250 } 251 // body params 252 if localVarOptionals != nil && localVarOptionals.FavoriteCollection.IsSet() { 253 localVarOptionalFavoriteCollection, localVarOptionalFavoriteCollectionok := localVarOptionals.FavoriteCollection.Value().(FavoriteCollection) 254 if !localVarOptionalFavoriteCollectionok { 255 return nil, reportError("favoriteCollection should be FavoriteCollection") 256 } 257 localVarPostBody = &localVarOptionalFavoriteCollection 258 } 259 260 r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) 261 if err != nil { 262 return nil, err 263 } 264 265 localVarHttpResponse, err := a.client.callAPI(r) 266 if err != nil || localVarHttpResponse == nil { 267 return localVarHttpResponse, err 268 } 269 270 localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) 271 localVarHttpResponse.Body.Close() 272 if err != nil { 273 return localVarHttpResponse, err 274 } 275 276 if localVarHttpResponse.StatusCode >= 300 { 277 newErr := GenericOpenAPIError{ 278 body: localVarBody, 279 error: localVarHttpResponse.Status, 280 } 281 return localVarHttpResponse, newErr 282 } 283 284 return localVarHttpResponse, nil 285 } 286 287 /* 288 UserContactsApiService Delete Contact(s) by ID 289 <p style='font-style:italic;'></p><p></p><h4>Required Permissions</h4><table class='fullwidth'><thead><tr><th>Permission</th><th>Description</th></tr></thead><tbody><tr><td class='code'>Contacts</td><td>Creating, viewing, editing and deleting user personal contacts</td></tr><tr><td class='code'>ReadContacts</td><td>Viewing user personal contacts</td></tr></tbody></table><h4>Usage Plan Group</h4><p>Heavy</p> 290 * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). 291 * @param accountId Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session 292 * @param extensionId Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session 293 * @param contactId Internal identifier of a contact record in the RingCentral database 294 */ 295 func (a *UserContactsApiService) DeleteContact(ctx context.Context, accountId string, extensionId string, contactId int32) (*http.Response, error) { 296 var ( 297 localVarHttpMethod = strings.ToUpper("Delete") 298 localVarPostBody interface{} 299 localVarFormFileName string 300 localVarFileName string 301 localVarFileBytes []byte 302 ) 303 304 // create path and map variables 305 localVarPath := a.client.cfg.BasePath + "/restapi/v1.0/account/{accountId}/extension/{extensionId}/address-book/contact/{contactId}" 306 localVarPath = strings.Replace(localVarPath, "{"+"accountId"+"}", fmt.Sprintf("%v", accountId), -1) 307 localVarPath = strings.Replace(localVarPath, "{"+"extensionId"+"}", fmt.Sprintf("%v", extensionId), -1) 308 localVarPath = strings.Replace(localVarPath, "{"+"contactId"+"}", fmt.Sprintf("%v", contactId), -1) 309 310 localVarHeaderParams := make(map[string]string) 311 localVarQueryParams := url.Values{} 312 localVarFormParams := url.Values{} 313 314 // to determine the Content-Type header 315 localVarHttpContentTypes := []string{} 316 317 // set Content-Type header 318 localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) 319 if localVarHttpContentType != "" { 320 localVarHeaderParams["Content-Type"] = localVarHttpContentType 321 } 322 323 // to determine the Accept header 324 localVarHttpHeaderAccepts := []string{} 325 326 // set Accept header 327 localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) 328 if localVarHttpHeaderAccept != "" { 329 localVarHeaderParams["Accept"] = localVarHttpHeaderAccept 330 } 331 r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) 332 if err != nil { 333 return nil, err 334 } 335 336 localVarHttpResponse, err := a.client.callAPI(r) 337 if err != nil || localVarHttpResponse == nil { 338 return localVarHttpResponse, err 339 } 340 341 localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) 342 localVarHttpResponse.Body.Close() 343 if err != nil { 344 return localVarHttpResponse, err 345 } 346 347 if localVarHttpResponse.StatusCode >= 300 { 348 newErr := GenericOpenAPIError{ 349 body: localVarBody, 350 error: localVarHttpResponse.Status, 351 } 352 return localVarHttpResponse, newErr 353 } 354 355 return localVarHttpResponse, nil 356 } 357 358 /* 359 UserContactsApiService Get Contacts 360 <p style='font-style:italic;'></p><p></p><h4>Required Permissions</h4><table class='fullwidth'><thead><tr><th>Permission</th><th>Description</th></tr></thead><tbody><tr><td class='code'>ReadContacts</td><td>Viewing user personal contacts</td></tr></tbody></table><h4>Usage Plan Group</h4><p>Heavy</p> 361 * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). 362 * @param accountId Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session 363 * @param extensionId Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session 364 * @param optional nil or *ListContactsOpts - Optional Parameters: 365 * @param "StartsWith" (optional.String) - If specified, only contacts whose First name or Last name start with the mentioned substring are returned. Case-insensitive 366 * @param "SortBy" (optional.Interface of []string) - Sorts results by the specified property. The default is 'First Name' 367 * @param "Page" (optional.Int32) - Indicates the page number to retrieve. Only positive number values are allowed. Default value is '1' 368 * @param "PerPage" (optional.Int32) - Indicates the page size (number of items). If not specified, the value is '100' by default 369 * @param "PhoneNumber" (optional.Interface of []string) - 370 @return ContactList 371 */ 372 373 type ListContactsOpts struct { 374 StartsWith optional.String 375 SortBy optional.Interface 376 Page optional.Int32 377 PerPage optional.Int32 378 PhoneNumber optional.Interface 379 } 380 381 func (a *UserContactsApiService) ListContacts(ctx context.Context, accountId string, extensionId string, localVarOptionals *ListContactsOpts) (ContactList, *http.Response, error) { 382 var ( 383 localVarHttpMethod = strings.ToUpper("Get") 384 localVarPostBody interface{} 385 localVarFormFileName string 386 localVarFileName string 387 localVarFileBytes []byte 388 localVarReturnValue ContactList 389 ) 390 391 // create path and map variables 392 localVarPath := a.client.cfg.BasePath + "/restapi/v1.0/account/{accountId}/extension/{extensionId}/address-book/contact" 393 localVarPath = strings.Replace(localVarPath, "{"+"accountId"+"}", fmt.Sprintf("%v", accountId), -1) 394 localVarPath = strings.Replace(localVarPath, "{"+"extensionId"+"}", fmt.Sprintf("%v", extensionId), -1) 395 396 localVarHeaderParams := make(map[string]string) 397 localVarQueryParams := url.Values{} 398 localVarFormParams := url.Values{} 399 400 if localVarOptionals != nil && localVarOptionals.StartsWith.IsSet() { 401 localVarQueryParams.Add("startsWith", parameterToString(localVarOptionals.StartsWith.Value(), "")) 402 } 403 if localVarOptionals != nil && localVarOptionals.SortBy.IsSet() { 404 localVarQueryParams.Add("sortBy", parameterToString(localVarOptionals.SortBy.Value(), "multi")) 405 } 406 if localVarOptionals != nil && localVarOptionals.Page.IsSet() { 407 localVarQueryParams.Add("page", parameterToString(localVarOptionals.Page.Value(), "")) 408 } 409 if localVarOptionals != nil && localVarOptionals.PerPage.IsSet() { 410 localVarQueryParams.Add("perPage", parameterToString(localVarOptionals.PerPage.Value(), "")) 411 } 412 if localVarOptionals != nil && localVarOptionals.PhoneNumber.IsSet() { 413 localVarQueryParams.Add("phoneNumber", parameterToString(localVarOptionals.PhoneNumber.Value(), "multi")) 414 } 415 // to determine the Content-Type header 416 localVarHttpContentTypes := []string{} 417 418 // set Content-Type header 419 localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) 420 if localVarHttpContentType != "" { 421 localVarHeaderParams["Content-Type"] = localVarHttpContentType 422 } 423 424 // to determine the Accept header 425 localVarHttpHeaderAccepts := []string{"application/json"} 426 427 // set Accept header 428 localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) 429 if localVarHttpHeaderAccept != "" { 430 localVarHeaderParams["Accept"] = localVarHttpHeaderAccept 431 } 432 r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) 433 if err != nil { 434 return localVarReturnValue, nil, err 435 } 436 437 localVarHttpResponse, err := a.client.callAPI(r) 438 if err != nil || localVarHttpResponse == nil { 439 return localVarReturnValue, localVarHttpResponse, err 440 } 441 442 localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) 443 localVarHttpResponse.Body.Close() 444 if err != nil { 445 return localVarReturnValue, localVarHttpResponse, err 446 } 447 448 if localVarHttpResponse.StatusCode >= 300 { 449 newErr := GenericOpenAPIError{ 450 body: localVarBody, 451 error: localVarHttpResponse.Status, 452 } 453 if localVarHttpResponse.StatusCode == 0 { 454 var v ContactList 455 err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) 456 if err != nil { 457 newErr.error = err.Error() 458 return localVarReturnValue, localVarHttpResponse, newErr 459 } 460 newErr.model = v 461 return localVarReturnValue, localVarHttpResponse, newErr 462 } 463 return localVarReturnValue, localVarHttpResponse, newErr 464 } 465 466 err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) 467 if err != nil { 468 newErr := GenericOpenAPIError{ 469 body: localVarBody, 470 error: err.Error(), 471 } 472 return localVarReturnValue, localVarHttpResponse, newErr 473 } 474 475 return localVarReturnValue, localVarHttpResponse, nil 476 } 477 478 /* 479 UserContactsApiService Get Contact(s) by ID 480 <p style='font-style:italic;'></p><p></p><h4>Required Permissions</h4><table class='fullwidth'><thead><tr><th>Permission</th><th>Description</th></tr></thead><tbody><tr><td class='code'>ReadContacts</td><td>Viewing user personal contacts</td></tr></tbody></table><h4>Usage Plan Group</h4><p>Heavy</p> 481 * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). 482 * @param accountId Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session 483 * @param extensionId Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session 484 * @param contactId Internal identifier of a contact record in the RingCentral database 485 @return PersonalContactResource 486 */ 487 func (a *UserContactsApiService) LoadContact(ctx context.Context, accountId string, extensionId string, contactId int32) (PersonalContactResource, *http.Response, error) { 488 var ( 489 localVarHttpMethod = strings.ToUpper("Get") 490 localVarPostBody interface{} 491 localVarFormFileName string 492 localVarFileName string 493 localVarFileBytes []byte 494 localVarReturnValue PersonalContactResource 495 ) 496 497 // create path and map variables 498 localVarPath := a.client.cfg.BasePath + "/restapi/v1.0/account/{accountId}/extension/{extensionId}/address-book/contact/{contactId}" 499 localVarPath = strings.Replace(localVarPath, "{"+"accountId"+"}", fmt.Sprintf("%v", accountId), -1) 500 localVarPath = strings.Replace(localVarPath, "{"+"extensionId"+"}", fmt.Sprintf("%v", extensionId), -1) 501 localVarPath = strings.Replace(localVarPath, "{"+"contactId"+"}", fmt.Sprintf("%v", contactId), -1) 502 503 localVarHeaderParams := make(map[string]string) 504 localVarQueryParams := url.Values{} 505 localVarFormParams := url.Values{} 506 507 // to determine the Content-Type header 508 localVarHttpContentTypes := []string{} 509 510 // set Content-Type header 511 localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) 512 if localVarHttpContentType != "" { 513 localVarHeaderParams["Content-Type"] = localVarHttpContentType 514 } 515 516 // to determine the Accept header 517 localVarHttpHeaderAccepts := []string{"application/json"} 518 519 // set Accept header 520 localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) 521 if localVarHttpHeaderAccept != "" { 522 localVarHeaderParams["Accept"] = localVarHttpHeaderAccept 523 } 524 r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) 525 if err != nil { 526 return localVarReturnValue, nil, err 527 } 528 529 localVarHttpResponse, err := a.client.callAPI(r) 530 if err != nil || localVarHttpResponse == nil { 531 return localVarReturnValue, localVarHttpResponse, err 532 } 533 534 localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) 535 localVarHttpResponse.Body.Close() 536 if err != nil { 537 return localVarReturnValue, localVarHttpResponse, err 538 } 539 540 if localVarHttpResponse.StatusCode >= 300 { 541 newErr := GenericOpenAPIError{ 542 body: localVarBody, 543 error: localVarHttpResponse.Status, 544 } 545 if localVarHttpResponse.StatusCode == 0 { 546 var v PersonalContactResource 547 err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) 548 if err != nil { 549 newErr.error = err.Error() 550 return localVarReturnValue, localVarHttpResponse, newErr 551 } 552 newErr.model = v 553 return localVarReturnValue, localVarHttpResponse, newErr 554 } 555 return localVarReturnValue, localVarHttpResponse, newErr 556 } 557 558 err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) 559 if err != nil { 560 newErr := GenericOpenAPIError{ 561 body: localVarBody, 562 error: err.Error(), 563 } 564 return localVarReturnValue, localVarHttpResponse, newErr 565 } 566 567 return localVarReturnValue, localVarHttpResponse, nil 568 } 569 570 /* 571 UserContactsApiService Address Book Synchronization 572 <p style='font-style:italic;'></p><p></p><h4>Required Permissions</h4><table class='fullwidth'><thead><tr><th>Permission</th><th>Description</th></tr></thead><tbody><tr><td class='code'>ReadContacts</td><td>Viewing user personal contacts</td></tr></tbody></table><h4>Usage Plan Group</h4><p>Heavy</p> 573 * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). 574 * @param accountId Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session 575 * @param extensionId Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session 576 * @param optional nil or *SyncAddressBookOpts - Optional Parameters: 577 * @param "SyncType" (optional.Interface of []string) - Type of synchronization. The default value is 'FSync' 578 * @param "SyncToken" (optional.String) - Value of syncToken property of the last sync request response 579 * @param "PerPage" (optional.Int32) - Number of records per page to be returned. The max number of records is 250, which is also the default. For FSync ??? if the number of records exceeds the parameter value (either specified or default), all of the pages can be retrieved in several requests. For ISync ??? if the number of records exceeds the page size, the number of incoming changes to this number is limited 580 * @param "PageId" (optional.Int32) - Internal identifier of a page. It can be obtained from the 'nextPageId' parameter passed in response body 581 @return AddressBookSync 582 */ 583 584 type SyncAddressBookOpts struct { 585 SyncType optional.Interface 586 SyncToken optional.String 587 PerPage optional.Int32 588 PageId optional.Int32 589 } 590 591 func (a *UserContactsApiService) SyncAddressBook(ctx context.Context, accountId string, extensionId string, localVarOptionals *SyncAddressBookOpts) (AddressBookSync, *http.Response, error) { 592 var ( 593 localVarHttpMethod = strings.ToUpper("Get") 594 localVarPostBody interface{} 595 localVarFormFileName string 596 localVarFileName string 597 localVarFileBytes []byte 598 localVarReturnValue AddressBookSync 599 ) 600 601 // create path and map variables 602 localVarPath := a.client.cfg.BasePath + "/restapi/v1.0/account/{accountId}/extension/{extensionId}/address-book-sync" 603 localVarPath = strings.Replace(localVarPath, "{"+"accountId"+"}", fmt.Sprintf("%v", accountId), -1) 604 localVarPath = strings.Replace(localVarPath, "{"+"extensionId"+"}", fmt.Sprintf("%v", extensionId), -1) 605 606 localVarHeaderParams := make(map[string]string) 607 localVarQueryParams := url.Values{} 608 localVarFormParams := url.Values{} 609 610 if localVarOptionals != nil && localVarOptionals.SyncType.IsSet() { 611 localVarQueryParams.Add("syncType", parameterToString(localVarOptionals.SyncType.Value(), "multi")) 612 } 613 if localVarOptionals != nil && localVarOptionals.SyncToken.IsSet() { 614 localVarQueryParams.Add("syncToken", parameterToString(localVarOptionals.SyncToken.Value(), "")) 615 } 616 if localVarOptionals != nil && localVarOptionals.PerPage.IsSet() { 617 localVarQueryParams.Add("perPage", parameterToString(localVarOptionals.PerPage.Value(), "")) 618 } 619 if localVarOptionals != nil && localVarOptionals.PageId.IsSet() { 620 localVarQueryParams.Add("pageId", parameterToString(localVarOptionals.PageId.Value(), "")) 621 } 622 // to determine the Content-Type header 623 localVarHttpContentTypes := []string{} 624 625 // set Content-Type header 626 localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) 627 if localVarHttpContentType != "" { 628 localVarHeaderParams["Content-Type"] = localVarHttpContentType 629 } 630 631 // to determine the Accept header 632 localVarHttpHeaderAccepts := []string{"application/json"} 633 634 // set Accept header 635 localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) 636 if localVarHttpHeaderAccept != "" { 637 localVarHeaderParams["Accept"] = localVarHttpHeaderAccept 638 } 639 r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) 640 if err != nil { 641 return localVarReturnValue, nil, err 642 } 643 644 localVarHttpResponse, err := a.client.callAPI(r) 645 if err != nil || localVarHttpResponse == nil { 646 return localVarReturnValue, localVarHttpResponse, err 647 } 648 649 localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) 650 localVarHttpResponse.Body.Close() 651 if err != nil { 652 return localVarReturnValue, localVarHttpResponse, err 653 } 654 655 if localVarHttpResponse.StatusCode >= 300 { 656 newErr := GenericOpenAPIError{ 657 body: localVarBody, 658 error: localVarHttpResponse.Status, 659 } 660 if localVarHttpResponse.StatusCode == 0 { 661 var v AddressBookSync 662 err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) 663 if err != nil { 664 newErr.error = err.Error() 665 return localVarReturnValue, localVarHttpResponse, newErr 666 } 667 newErr.model = v 668 return localVarReturnValue, localVarHttpResponse, newErr 669 } 670 return localVarReturnValue, localVarHttpResponse, newErr 671 } 672 673 err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) 674 if err != nil { 675 newErr := GenericOpenAPIError{ 676 body: localVarBody, 677 error: err.Error(), 678 } 679 return localVarReturnValue, localVarHttpResponse, newErr 680 } 681 682 return localVarReturnValue, localVarHttpResponse, nil 683 } 684 685 /* 686 UserContactsApiService Update Contact(s) by ID 687 <p style='font-style:italic;'></p><p></p><h4>Required Permissions</h4><table class='fullwidth'><thead><tr><th>Permission</th><th>Description</th></tr></thead><tbody><tr><td class='code'>Contacts</td><td>Creating, viewing, editing and deleting user personal contacts</td></tr><tr><td class='code'>ReadContacts</td><td>Viewing user personal contacts</td></tr></tbody></table><h4>Usage Plan Group</h4><p>Heavy</p> 688 * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). 689 * @param accountId Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session 690 * @param extensionId Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session 691 * @param contactId Internal identifier of a contact record in the RingCentral database 692 * @param optional nil or *UpdateContactOpts - Optional Parameters: 693 * @param "PersonalContactResource" (optional.Interface of PersonalContactResource) - 694 @return PersonalContactResource 695 */ 696 697 type UpdateContactOpts struct { 698 PersonalContactResource optional.Interface 699 } 700 701 func (a *UserContactsApiService) UpdateContact(ctx context.Context, accountId string, extensionId string, contactId int32, localVarOptionals *UpdateContactOpts) (PersonalContactResource, *http.Response, error) { 702 var ( 703 localVarHttpMethod = strings.ToUpper("Put") 704 localVarPostBody interface{} 705 localVarFormFileName string 706 localVarFileName string 707 localVarFileBytes []byte 708 localVarReturnValue PersonalContactResource 709 ) 710 711 // create path and map variables 712 localVarPath := a.client.cfg.BasePath + "/restapi/v1.0/account/{accountId}/extension/{extensionId}/address-book/contact/{contactId}" 713 localVarPath = strings.Replace(localVarPath, "{"+"accountId"+"}", fmt.Sprintf("%v", accountId), -1) 714 localVarPath = strings.Replace(localVarPath, "{"+"extensionId"+"}", fmt.Sprintf("%v", extensionId), -1) 715 localVarPath = strings.Replace(localVarPath, "{"+"contactId"+"}", fmt.Sprintf("%v", contactId), -1) 716 717 localVarHeaderParams := make(map[string]string) 718 localVarQueryParams := url.Values{} 719 localVarFormParams := url.Values{} 720 721 // to determine the Content-Type header 722 localVarHttpContentTypes := []string{"application/json"} 723 724 // set Content-Type header 725 localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) 726 if localVarHttpContentType != "" { 727 localVarHeaderParams["Content-Type"] = localVarHttpContentType 728 } 729 730 // to determine the Accept header 731 localVarHttpHeaderAccepts := []string{"application/json"} 732 733 // set Accept header 734 localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) 735 if localVarHttpHeaderAccept != "" { 736 localVarHeaderParams["Accept"] = localVarHttpHeaderAccept 737 } 738 // body params 739 if localVarOptionals != nil && localVarOptionals.PersonalContactResource.IsSet() { 740 localVarOptionalPersonalContactResource, localVarOptionalPersonalContactResourceok := localVarOptionals.PersonalContactResource.Value().(PersonalContactResource) 741 if !localVarOptionalPersonalContactResourceok { 742 return localVarReturnValue, nil, reportError("personalContactResource should be PersonalContactResource") 743 } 744 localVarPostBody = &localVarOptionalPersonalContactResource 745 } 746 747 r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) 748 if err != nil { 749 return localVarReturnValue, nil, err 750 } 751 752 localVarHttpResponse, err := a.client.callAPI(r) 753 if err != nil || localVarHttpResponse == nil { 754 return localVarReturnValue, localVarHttpResponse, err 755 } 756 757 localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) 758 localVarHttpResponse.Body.Close() 759 if err != nil { 760 return localVarReturnValue, localVarHttpResponse, err 761 } 762 763 if localVarHttpResponse.StatusCode >= 300 { 764 newErr := GenericOpenAPIError{ 765 body: localVarBody, 766 error: localVarHttpResponse.Status, 767 } 768 if localVarHttpResponse.StatusCode == 0 { 769 var v PersonalContactResource 770 err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) 771 if err != nil { 772 newErr.error = err.Error() 773 return localVarReturnValue, localVarHttpResponse, newErr 774 } 775 newErr.model = v 776 return localVarReturnValue, localVarHttpResponse, newErr 777 } 778 return localVarReturnValue, localVarHttpResponse, newErr 779 } 780 781 err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) 782 if err != nil { 783 newErr := GenericOpenAPIError{ 784 body: localVarBody, 785 error: err.Error(), 786 } 787 return localVarReturnValue, localVarHttpResponse, newErr 788 } 789 790 return localVarReturnValue, localVarHttpResponse, nil 791 }