github.com/grokify/go-ringcentral-client@v0.3.31/office/v1/client/api_messages.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 "os" 20 "strings" 21 ) 22 23 // Linger please 24 var ( 25 _ context.Context 26 ) 27 28 type MessagesApiService service 29 30 /* 31 MessagesApiService Delete Message(s) by ID 32 <p style='font-style:italic;'></p><p>Deletes message(s) by the given message ID(s). The first call of this method transfers the message to the 'Delete' status. The second call transfers the deleted message to the 'Purged' status. If it is required to make the message 'Purged' immediately (from the first call), then set the query parameter purge to 'True'.</p><h4>Required Permissions</h4><table class='fullwidth'><thead><tr><th>Permission</th><th>Description</th></tr></thead><tbody><tr><td class='code'>EditMessages</td><td>Viewing and updating user messages</td></tr><tr><td class='code'>ReadMessages</td><td>Viewing user messages</td></tr></tbody></table><h4>Usage Plan Group</h4><p>Medium</p> 33 * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). 34 * @param accountId Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session 35 * @param extensionId Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session 36 * @param messageId Internal identifier of a message 37 * @param optional nil or *DeleteMessageOpts - Optional Parameters: 38 * @param "Purge" (optional.Bool) - If the value is 'True', then the message is purged immediately with all the attachments. The default value is 'False' 39 * @param "ConversationId" (optional.Int32) - Internal identifier of a message thread 40 */ 41 42 type DeleteMessageOpts struct { 43 Purge optional.Bool 44 ConversationId optional.Int32 45 } 46 47 func (a *MessagesApiService) DeleteMessage(ctx context.Context, accountId string, extensionId string, messageId int32, localVarOptionals *DeleteMessageOpts) (*http.Response, error) { 48 var ( 49 localVarHttpMethod = strings.ToUpper("Delete") 50 localVarPostBody interface{} 51 localVarFormFileName string 52 localVarFileName string 53 localVarFileBytes []byte 54 ) 55 56 // create path and map variables 57 localVarPath := a.client.cfg.BasePath + "/restapi/v1.0/account/{accountId}/extension/{extensionId}/message-store/{messageId}" 58 localVarPath = strings.Replace(localVarPath, "{"+"accountId"+"}", fmt.Sprintf("%v", accountId), -1) 59 localVarPath = strings.Replace(localVarPath, "{"+"extensionId"+"}", fmt.Sprintf("%v", extensionId), -1) 60 localVarPath = strings.Replace(localVarPath, "{"+"messageId"+"}", fmt.Sprintf("%v", messageId), -1) 61 62 localVarHeaderParams := make(map[string]string) 63 localVarQueryParams := url.Values{} 64 localVarFormParams := url.Values{} 65 66 if localVarOptionals != nil && localVarOptionals.Purge.IsSet() { 67 localVarQueryParams.Add("purge", parameterToString(localVarOptionals.Purge.Value(), "")) 68 } 69 if localVarOptionals != nil && localVarOptionals.ConversationId.IsSet() { 70 localVarQueryParams.Add("conversationId", parameterToString(localVarOptionals.ConversationId.Value(), "")) 71 } 72 // to determine the Content-Type header 73 localVarHttpContentTypes := []string{} 74 75 // set Content-Type header 76 localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) 77 if localVarHttpContentType != "" { 78 localVarHeaderParams["Content-Type"] = localVarHttpContentType 79 } 80 81 // to determine the Accept header 82 localVarHttpHeaderAccepts := []string{} 83 84 // set Accept header 85 localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) 86 if localVarHttpHeaderAccept != "" { 87 localVarHeaderParams["Accept"] = localVarHttpHeaderAccept 88 } 89 r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) 90 if err != nil { 91 return nil, err 92 } 93 94 localVarHttpResponse, err := a.client.callAPI(r) 95 if err != nil || localVarHttpResponse == nil { 96 return localVarHttpResponse, err 97 } 98 99 localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) 100 localVarHttpResponse.Body.Close() 101 if err != nil { 102 return localVarHttpResponse, err 103 } 104 105 if localVarHttpResponse.StatusCode >= 300 { 106 newErr := GenericOpenAPIError{ 107 body: localVarBody, 108 error: localVarHttpResponse.Status, 109 } 110 return localVarHttpResponse, newErr 111 } 112 113 return localVarHttpResponse, nil 114 } 115 116 /* 117 MessagesApiService Delete Conversations by ID's 118 * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). 119 * @param extensionId 120 * @param accountId 121 * @param optional nil or *DeleteMessagesByFilterOpts - Optional Parameters: 122 * @param "ConversationId" (optional.Interface of []string) - 123 */ 124 125 type DeleteMessagesByFilterOpts struct { 126 ConversationId optional.Interface 127 } 128 129 func (a *MessagesApiService) DeleteMessagesByFilter(ctx context.Context, extensionId string, accountId string, localVarOptionals *DeleteMessagesByFilterOpts) (*http.Response, error) { 130 var ( 131 localVarHttpMethod = strings.ToUpper("Delete") 132 localVarPostBody interface{} 133 localVarFormFileName string 134 localVarFileName string 135 localVarFileBytes []byte 136 ) 137 138 // create path and map variables 139 localVarPath := a.client.cfg.BasePath + "/restapi/v1.0/account/{accountId}/extension/{extensionId}/message-store" 140 localVarPath = strings.Replace(localVarPath, "{"+"extensionId"+"}", fmt.Sprintf("%v", extensionId), -1) 141 localVarPath = strings.Replace(localVarPath, "{"+"accountId"+"}", fmt.Sprintf("%v", accountId), -1) 142 143 localVarHeaderParams := make(map[string]string) 144 localVarQueryParams := url.Values{} 145 localVarFormParams := url.Values{} 146 147 if localVarOptionals != nil && localVarOptionals.ConversationId.IsSet() { 148 localVarQueryParams.Add("conversationId", parameterToString(localVarOptionals.ConversationId.Value(), "multi")) 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{} 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 nil, err 170 } 171 172 localVarHttpResponse, err := a.client.callAPI(r) 173 if err != nil || localVarHttpResponse == nil { 174 return localVarHttpResponse, err 175 } 176 177 localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) 178 localVarHttpResponse.Body.Close() 179 if err != nil { 180 return localVarHttpResponse, err 181 } 182 183 if localVarHttpResponse.StatusCode >= 300 { 184 newErr := GenericOpenAPIError{ 185 body: localVarBody, 186 error: localVarHttpResponse.Status, 187 } 188 return localVarHttpResponse, newErr 189 } 190 191 return localVarHttpResponse, nil 192 } 193 194 /* 195 MessagesApiService Get Fax Cover Pages 196 * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). 197 * @param optional nil or *GetFaxCoverPagesOpts - Optional Parameters: 198 * @param "Page" (optional.Int32) - Indicates the page number to retrieve. Only positive number values are allowed. Default value is '1' 199 * @param "PerPage" (optional.Int32) - Indicates the page size (number of items). If not specified, the value is '100' by default 200 */ 201 202 type GetFaxCoverPagesOpts struct { 203 Page optional.Int32 204 PerPage optional.Int32 205 } 206 207 func (a *MessagesApiService) GetFaxCoverPages(ctx context.Context, localVarOptionals *GetFaxCoverPagesOpts) (*http.Response, error) { 208 var ( 209 localVarHttpMethod = strings.ToUpper("Get") 210 localVarPostBody interface{} 211 localVarFormFileName string 212 localVarFileName string 213 localVarFileBytes []byte 214 ) 215 216 // create path and map variables 217 localVarPath := a.client.cfg.BasePath + "/restapi/v1.0/dictionary/fax-cover-page" 218 219 localVarHeaderParams := make(map[string]string) 220 localVarQueryParams := url.Values{} 221 localVarFormParams := url.Values{} 222 223 if localVarOptionals != nil && localVarOptionals.Page.IsSet() { 224 localVarQueryParams.Add("page", parameterToString(localVarOptionals.Page.Value(), "")) 225 } 226 if localVarOptionals != nil && localVarOptionals.PerPage.IsSet() { 227 localVarQueryParams.Add("perPage", parameterToString(localVarOptionals.PerPage.Value(), "")) 228 } 229 // to determine the Content-Type header 230 localVarHttpContentTypes := []string{} 231 232 // set Content-Type header 233 localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) 234 if localVarHttpContentType != "" { 235 localVarHeaderParams["Content-Type"] = localVarHttpContentType 236 } 237 238 // to determine the Accept header 239 localVarHttpHeaderAccepts := []string{} 240 241 // set Accept header 242 localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) 243 if localVarHttpHeaderAccept != "" { 244 localVarHeaderParams["Accept"] = localVarHttpHeaderAccept 245 } 246 r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) 247 if err != nil { 248 return nil, err 249 } 250 251 localVarHttpResponse, err := a.client.callAPI(r) 252 if err != nil || localVarHttpResponse == nil { 253 return localVarHttpResponse, err 254 } 255 256 localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) 257 localVarHttpResponse.Body.Close() 258 if err != nil { 259 return localVarHttpResponse, err 260 } 261 262 if localVarHttpResponse.StatusCode >= 300 { 263 newErr := GenericOpenAPIError{ 264 body: localVarBody, 265 error: localVarHttpResponse.Status, 266 } 267 return localVarHttpResponse, newErr 268 } 269 270 return localVarHttpResponse, nil 271 } 272 273 /* 274 MessagesApiService Get Message List 275 <p style='font-style:italic;'>Since 1.0.2</p><p>Returns the list of messages from an extension mailbox.</p><h4>Required Permissions</h4><table class='fullwidth'><thead><tr><th>Permission</th><th>Description</th></tr></thead><tbody><tr><td class='code'>ReadMessages</td><td>Viewing user messages</td></tr></tbody></table><h4>Usage Plan Group</h4><p>Light</p> 276 * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). 277 * @param accountId Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session 278 * @param extensionId Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session 279 * @param optional nil or *ListMessagesOpts - Optional Parameters: 280 * @param "Availability" (optional.Interface of []string) - Specifies the availability status for the resulting messages. Default value is 'Alive'. Multiple values are accepted 281 * @param "ConversationId" (optional.Int32) - Specifies the conversation identifier for the resulting messages 282 * @param "DateFrom" (optional.Time) - The start datetime for resulting messages in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z. The default value is dateTo minus 24 hours 283 * @param "DateTo" (optional.Time) - The end datetime for resulting messages in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z. The default value is current time 284 * @param "Direction" (optional.Interface of []string) - The direction for the resulting messages. If not specified, both inbound and outbound messages are returned. Multiple values are accepted 285 * @param "DistinctConversations" (optional.Bool) - If 'True', then the latest messages per every conversation ID are returned 286 * @param "MessageType" (optional.Interface of []string) - The type of the resulting messages. If not specified, all messages without message type filtering are returned. Multiple values are accepted 287 * @param "ReadStatus" (optional.Interface of []string) - The read status for the resulting messages. Multiple values are accepted 288 * @param "Page" (optional.Int32) - Indicates the page number to retrieve. Only positive number values are allowed. Default value is '1' 289 * @param "PerPage" (optional.Int32) - Indicates the page size (number of items). If not specified, the value is '100' by default 290 * @param "PhoneNumber" (optional.String) - The phone number. If specified, messages are returned for this particular phone number only 291 @return GetMessageList 292 */ 293 294 type ListMessagesOpts struct { 295 Availability optional.Interface 296 ConversationId optional.Int32 297 DateFrom optional.Time 298 DateTo optional.Time 299 Direction optional.Interface 300 DistinctConversations optional.Bool 301 MessageType optional.Interface 302 ReadStatus optional.Interface 303 Page optional.Int32 304 PerPage optional.Int32 305 PhoneNumber optional.String 306 } 307 308 func (a *MessagesApiService) ListMessages(ctx context.Context, accountId string, extensionId string, localVarOptionals *ListMessagesOpts) (GetMessageList, *http.Response, error) { 309 var ( 310 localVarHttpMethod = strings.ToUpper("Get") 311 localVarPostBody interface{} 312 localVarFormFileName string 313 localVarFileName string 314 localVarFileBytes []byte 315 localVarReturnValue GetMessageList 316 ) 317 318 // create path and map variables 319 localVarPath := a.client.cfg.BasePath + "/restapi/v1.0/account/{accountId}/extension/{extensionId}/message-store" 320 localVarPath = strings.Replace(localVarPath, "{"+"accountId"+"}", fmt.Sprintf("%v", accountId), -1) 321 localVarPath = strings.Replace(localVarPath, "{"+"extensionId"+"}", fmt.Sprintf("%v", extensionId), -1) 322 323 localVarHeaderParams := make(map[string]string) 324 localVarQueryParams := url.Values{} 325 localVarFormParams := url.Values{} 326 327 if localVarOptionals != nil && localVarOptionals.Availability.IsSet() { 328 localVarQueryParams.Add("availability", parameterToString(localVarOptionals.Availability.Value(), "multi")) 329 } 330 if localVarOptionals != nil && localVarOptionals.ConversationId.IsSet() { 331 localVarQueryParams.Add("conversationId", parameterToString(localVarOptionals.ConversationId.Value(), "")) 332 } 333 if localVarOptionals != nil && localVarOptionals.DateFrom.IsSet() { 334 localVarQueryParams.Add("dateFrom", parameterToString(localVarOptionals.DateFrom.Value(), "")) 335 } 336 if localVarOptionals != nil && localVarOptionals.DateTo.IsSet() { 337 localVarQueryParams.Add("dateTo", parameterToString(localVarOptionals.DateTo.Value(), "")) 338 } 339 if localVarOptionals != nil && localVarOptionals.Direction.IsSet() { 340 localVarQueryParams.Add("direction", parameterToString(localVarOptionals.Direction.Value(), "multi")) 341 } 342 if localVarOptionals != nil && localVarOptionals.DistinctConversations.IsSet() { 343 localVarQueryParams.Add("distinctConversations", parameterToString(localVarOptionals.DistinctConversations.Value(), "")) 344 } 345 if localVarOptionals != nil && localVarOptionals.MessageType.IsSet() { 346 localVarQueryParams.Add("messageType", parameterToString(localVarOptionals.MessageType.Value(), "multi")) 347 } 348 if localVarOptionals != nil && localVarOptionals.ReadStatus.IsSet() { 349 localVarQueryParams.Add("readStatus", parameterToString(localVarOptionals.ReadStatus.Value(), "multi")) 350 } 351 if localVarOptionals != nil && localVarOptionals.Page.IsSet() { 352 localVarQueryParams.Add("page", parameterToString(localVarOptionals.Page.Value(), "")) 353 } 354 if localVarOptionals != nil && localVarOptionals.PerPage.IsSet() { 355 localVarQueryParams.Add("perPage", parameterToString(localVarOptionals.PerPage.Value(), "")) 356 } 357 if localVarOptionals != nil && localVarOptionals.PhoneNumber.IsSet() { 358 localVarQueryParams.Add("phoneNumber", parameterToString(localVarOptionals.PhoneNumber.Value(), "")) 359 } 360 // to determine the Content-Type header 361 localVarHttpContentTypes := []string{} 362 363 // set Content-Type header 364 localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) 365 if localVarHttpContentType != "" { 366 localVarHeaderParams["Content-Type"] = localVarHttpContentType 367 } 368 369 // to determine the Accept header 370 localVarHttpHeaderAccepts := []string{"application/json"} 371 372 // set Accept header 373 localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) 374 if localVarHttpHeaderAccept != "" { 375 localVarHeaderParams["Accept"] = localVarHttpHeaderAccept 376 } 377 r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) 378 if err != nil { 379 return localVarReturnValue, nil, err 380 } 381 382 localVarHttpResponse, err := a.client.callAPI(r) 383 if err != nil || localVarHttpResponse == nil { 384 return localVarReturnValue, localVarHttpResponse, err 385 } 386 387 localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) 388 localVarHttpResponse.Body.Close() 389 if err != nil { 390 return localVarReturnValue, localVarHttpResponse, err 391 } 392 393 if localVarHttpResponse.StatusCode >= 300 { 394 newErr := GenericOpenAPIError{ 395 body: localVarBody, 396 error: localVarHttpResponse.Status, 397 } 398 if localVarHttpResponse.StatusCode == 0 { 399 var v GetMessageList 400 err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) 401 if err != nil { 402 newErr.error = err.Error() 403 return localVarReturnValue, localVarHttpResponse, newErr 404 } 405 newErr.model = v 406 return localVarReturnValue, localVarHttpResponse, newErr 407 } 408 return localVarReturnValue, localVarHttpResponse, newErr 409 } 410 411 err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) 412 if err != nil { 413 newErr := GenericOpenAPIError{ 414 body: localVarBody, 415 error: err.Error(), 416 } 417 return localVarReturnValue, localVarHttpResponse, newErr 418 } 419 420 return localVarReturnValue, localVarHttpResponse, nil 421 } 422 423 /* 424 MessagesApiService Get Message(s) by ID 425 <p style='font-style:italic;'>Since 1.0.2</p><p>Returns individual message record(s) by the given message ID(s). The length of inbound messages is unlimited. Batch request is supported, see Batch Requests for details.</p><h4>Required Permissions</h4><table class='fullwidth'><thead><tr><th>Permission</th><th>Description</th></tr></thead><tbody><tr><td class='code'>ReadMessages</td><td>Viewing user messages</td></tr></tbody></table><h4>Usage Plan Group</h4><p>Light</p> 426 * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). 427 * @param accountId Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session 428 * @param extensionId Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session 429 * @param messageId Internal identifier of a message 430 @return GetMessageInfoResponse 431 */ 432 func (a *MessagesApiService) LoadMessage(ctx context.Context, accountId string, extensionId string, messageId int32) (GetMessageInfoResponse, *http.Response, error) { 433 var ( 434 localVarHttpMethod = strings.ToUpper("Get") 435 localVarPostBody interface{} 436 localVarFormFileName string 437 localVarFileName string 438 localVarFileBytes []byte 439 localVarReturnValue GetMessageInfoResponse 440 ) 441 442 // create path and map variables 443 localVarPath := a.client.cfg.BasePath + "/restapi/v1.0/account/{accountId}/extension/{extensionId}/message-store/{messageId}" 444 localVarPath = strings.Replace(localVarPath, "{"+"accountId"+"}", fmt.Sprintf("%v", accountId), -1) 445 localVarPath = strings.Replace(localVarPath, "{"+"extensionId"+"}", fmt.Sprintf("%v", extensionId), -1) 446 localVarPath = strings.Replace(localVarPath, "{"+"messageId"+"}", fmt.Sprintf("%v", messageId), -1) 447 448 localVarHeaderParams := make(map[string]string) 449 localVarQueryParams := url.Values{} 450 localVarFormParams := url.Values{} 451 452 // to determine the Content-Type header 453 localVarHttpContentTypes := []string{} 454 455 // set Content-Type header 456 localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) 457 if localVarHttpContentType != "" { 458 localVarHeaderParams["Content-Type"] = localVarHttpContentType 459 } 460 461 // to determine the Accept header 462 localVarHttpHeaderAccepts := []string{"application/json"} 463 464 // set Accept header 465 localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) 466 if localVarHttpHeaderAccept != "" { 467 localVarHeaderParams["Accept"] = localVarHttpHeaderAccept 468 } 469 r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) 470 if err != nil { 471 return localVarReturnValue, nil, err 472 } 473 474 localVarHttpResponse, err := a.client.callAPI(r) 475 if err != nil || localVarHttpResponse == nil { 476 return localVarReturnValue, localVarHttpResponse, err 477 } 478 479 localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) 480 localVarHttpResponse.Body.Close() 481 if err != nil { 482 return localVarReturnValue, localVarHttpResponse, err 483 } 484 485 if localVarHttpResponse.StatusCode >= 300 { 486 newErr := GenericOpenAPIError{ 487 body: localVarBody, 488 error: localVarHttpResponse.Status, 489 } 490 if localVarHttpResponse.StatusCode == 0 { 491 var v GetMessageInfoResponse 492 err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) 493 if err != nil { 494 newErr.error = err.Error() 495 return localVarReturnValue, localVarHttpResponse, newErr 496 } 497 newErr.model = v 498 return localVarReturnValue, localVarHttpResponse, newErr 499 } 500 return localVarReturnValue, localVarHttpResponse, newErr 501 } 502 503 err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) 504 if err != nil { 505 newErr := GenericOpenAPIError{ 506 body: localVarBody, 507 error: err.Error(), 508 } 509 return localVarReturnValue, localVarHttpResponse, newErr 510 } 511 512 return localVarReturnValue, localVarHttpResponse, nil 513 } 514 515 /* 516 MessagesApiService Get Message Attachment 517 <p style='font-style:italic;'>Since 1.0.4 (Release 5.13)</p><p>Returns particular message attachment data as a media stream.</p><h4>Required Permissions</h4><table class='fullwidth'><thead><tr><th>Permission</th><th>Description</th></tr></thead><tbody><tr><td class='code'>ReadMessages</td><td>Viewing user messages</td></tr></tbody></table><h4>Usage Plan Group</h4><p>Medium</p> 518 * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). 519 * @param accountId Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session 520 * @param extensionId Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session 521 * @param attachmentId Internal identifier of a message attachment 522 * @param messageId Internal identifier of a message 523 * @param optional nil or *LoadMessageAttachmentOpts - Optional Parameters: 524 * @param "Range_" (optional.String) - 525 */ 526 527 type LoadMessageAttachmentOpts struct { 528 Range_ optional.String 529 } 530 531 func (a *MessagesApiService) LoadMessageAttachment(ctx context.Context, accountId string, extensionId string, attachmentId int32, messageId int32, localVarOptionals *LoadMessageAttachmentOpts) (*http.Response, error) { 532 var ( 533 localVarHttpMethod = strings.ToUpper("Get") 534 localVarPostBody interface{} 535 localVarFormFileName string 536 localVarFileName string 537 localVarFileBytes []byte 538 ) 539 540 // create path and map variables 541 localVarPath := a.client.cfg.BasePath + "/restapi/v1.0/account/{accountId}/extension/{extensionId}/message-store/{messageId}/content/{attachmentId}" 542 localVarPath = strings.Replace(localVarPath, "{"+"accountId"+"}", fmt.Sprintf("%v", accountId), -1) 543 localVarPath = strings.Replace(localVarPath, "{"+"extensionId"+"}", fmt.Sprintf("%v", extensionId), -1) 544 localVarPath = strings.Replace(localVarPath, "{"+"attachmentId"+"}", fmt.Sprintf("%v", attachmentId), -1) 545 localVarPath = strings.Replace(localVarPath, "{"+"messageId"+"}", fmt.Sprintf("%v", messageId), -1) 546 547 localVarHeaderParams := make(map[string]string) 548 localVarQueryParams := url.Values{} 549 localVarFormParams := url.Values{} 550 551 // to determine the Content-Type header 552 localVarHttpContentTypes := []string{} 553 554 // set Content-Type header 555 localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) 556 if localVarHttpContentType != "" { 557 localVarHeaderParams["Content-Type"] = localVarHttpContentType 558 } 559 560 // to determine the Accept header 561 localVarHttpHeaderAccepts := []string{} 562 563 // set Accept header 564 localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) 565 if localVarHttpHeaderAccept != "" { 566 localVarHeaderParams["Accept"] = localVarHttpHeaderAccept 567 } 568 if localVarOptionals != nil && localVarOptionals.Range_.IsSet() { 569 localVarHeaderParams["Range"] = parameterToString(localVarOptionals.Range_.Value(), "") 570 } 571 r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) 572 if err != nil { 573 return nil, err 574 } 575 576 localVarHttpResponse, err := a.client.callAPI(r) 577 if err != nil || localVarHttpResponse == nil { 578 return localVarHttpResponse, err 579 } 580 581 localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) 582 localVarHttpResponse.Body.Close() 583 if err != nil { 584 return localVarHttpResponse, err 585 } 586 587 if localVarHttpResponse.StatusCode >= 300 { 588 newErr := GenericOpenAPIError{ 589 body: localVarBody, 590 error: localVarHttpResponse.Status, 591 } 592 return localVarHttpResponse, newErr 593 } 594 595 return localVarHttpResponse, nil 596 } 597 598 /* 599 MessagesApiService Create Fax Message 600 <p style='font-style:italic;'>Since 1.0.2</p><p>Creates and sends/resends new fax message. Resend can be done if sending failed.</p><h4>Required Permissions</h4><table class='fullwidth'><thead><tr><th>Permission</th><th>Description</th></tr></thead><tbody><tr><td class='code'>Faxes</td><td>Sending and receiving faxes</td></tr><tr><td class='code'>ReadMessages</td><td>Viewing user messages</td></tr></tbody></table><h4>Usage Plan Group</h4><p>Heavy</p> 601 * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). 602 * @param accountId Internal identifier of a RingCentral account (integer) or tilde (~) to indicate the account which was logged-in within the current session. 603 * @param extensionId Internal identifier of an extension (integer) or tilde (~) to indicate the extension assigned to the account logged-in within the current session 604 * @param to To Phone Number 605 * @param optional nil or *SendFaxMessageOpts - Optional Parameters: 606 * @param "Attachment" (optional.Interface of *os.File) - File to upload 607 * @param "FaxResolution" (optional.String) - Resolution of Fax 608 * @param "SendTime" (optional.Time) - Optional. Timestamp to send fax at. If not specified (current or the past), the fax is sent immediately 609 * @param "IsoCode" (optional.String) - ISO Code. e.g UK 610 * @param "CoverIndex" (optional.Int32) - Cover page identifier. For the list of available cover page identifiers please call the method Fax Cover Pages. If not specified, the default cover page which is configured in 'Outbound Fax Settings' is attached 611 * @param "CoverPageText" (optional.String) - Cover page text, entered by the fax sender and printed on the cover page. Maximum length is limited to 1024 symbols 612 @return FaxResponse 613 */ 614 615 type SendFaxMessageOpts struct { 616 Attachment optional.Interface 617 FaxResolution optional.String 618 SendTime optional.Time 619 IsoCode optional.String 620 CoverIndex optional.Int32 621 CoverPageText optional.String 622 } 623 624 func (a *MessagesApiService) SendFaxMessage(ctx context.Context, accountId string, extensionId string, to []string, localVarOptionals *SendFaxMessageOpts) (FaxResponse, *http.Response, error) { 625 var ( 626 localVarHttpMethod = strings.ToUpper("Post") 627 localVarPostBody interface{} 628 localVarFormFileName string 629 localVarFileName string 630 localVarFileBytes []byte 631 localVarReturnValue FaxResponse 632 ) 633 634 // create path and map variables 635 localVarPath := a.client.cfg.BasePath + "/restapi/v1.0/account/{accountId}/extension/{extensionId}/fax" 636 localVarPath = strings.Replace(localVarPath, "{"+"accountId"+"}", fmt.Sprintf("%v", accountId), -1) 637 localVarPath = strings.Replace(localVarPath, "{"+"extensionId"+"}", fmt.Sprintf("%v", extensionId), -1) 638 639 localVarHeaderParams := make(map[string]string) 640 localVarQueryParams := url.Values{} 641 localVarFormParams := url.Values{} 642 643 // to determine the Content-Type header 644 localVarHttpContentTypes := []string{"multipart/form-data"} 645 646 // set Content-Type header 647 localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) 648 if localVarHttpContentType != "" { 649 localVarHeaderParams["Content-Type"] = localVarHttpContentType 650 } 651 652 // to determine the Accept header 653 localVarHttpHeaderAccepts := []string{"application/json"} 654 655 // set Accept header 656 localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) 657 if localVarHttpHeaderAccept != "" { 658 localVarHeaderParams["Accept"] = localVarHttpHeaderAccept 659 } 660 localVarFormParams.Add("to", parameterToString(to, "csv")) 661 localVarFormFileName = "attachment" 662 var localVarFile *os.File 663 if localVarOptionals != nil && localVarOptionals.Attachment.IsSet() { 664 localVarFileOk := false 665 localVarFile, localVarFileOk = localVarOptionals.Attachment.Value().(*os.File) 666 if !localVarFileOk { 667 return localVarReturnValue, nil, reportError("attachment should be *os.File") 668 } 669 } 670 if localVarFile != nil { 671 fbs, _ := ioutil.ReadAll(localVarFile) 672 localVarFileBytes = fbs 673 localVarFileName = localVarFile.Name() 674 localVarFile.Close() 675 } 676 if localVarOptionals != nil && localVarOptionals.FaxResolution.IsSet() { 677 localVarFormParams.Add("faxResolution", parameterToString(localVarOptionals.FaxResolution.Value(), "")) 678 } 679 if localVarOptionals != nil && localVarOptionals.SendTime.IsSet() { 680 localVarFormParams.Add("sendTime", parameterToString(localVarOptionals.SendTime.Value(), "")) 681 } 682 if localVarOptionals != nil && localVarOptionals.IsoCode.IsSet() { 683 localVarFormParams.Add("isoCode", parameterToString(localVarOptionals.IsoCode.Value(), "")) 684 } 685 if localVarOptionals != nil && localVarOptionals.CoverIndex.IsSet() { 686 localVarFormParams.Add("coverIndex", parameterToString(localVarOptionals.CoverIndex.Value(), "")) 687 } 688 if localVarOptionals != nil && localVarOptionals.CoverPageText.IsSet() { 689 localVarFormParams.Add("coverPageText", parameterToString(localVarOptionals.CoverPageText.Value(), "")) 690 } 691 r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) 692 if err != nil { 693 return localVarReturnValue, nil, err 694 } 695 696 localVarHttpResponse, err := a.client.callAPI(r) 697 if err != nil || localVarHttpResponse == nil { 698 return localVarReturnValue, localVarHttpResponse, err 699 } 700 701 localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) 702 localVarHttpResponse.Body.Close() 703 if err != nil { 704 return localVarReturnValue, localVarHttpResponse, err 705 } 706 707 if localVarHttpResponse.StatusCode >= 300 { 708 newErr := GenericOpenAPIError{ 709 body: localVarBody, 710 error: localVarHttpResponse.Status, 711 } 712 if localVarHttpResponse.StatusCode == 0 { 713 var v FaxResponse 714 err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) 715 if err != nil { 716 newErr.error = err.Error() 717 return localVarReturnValue, localVarHttpResponse, newErr 718 } 719 newErr.model = v 720 return localVarReturnValue, localVarHttpResponse, newErr 721 } 722 return localVarReturnValue, localVarHttpResponse, newErr 723 } 724 725 err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) 726 if err != nil { 727 newErr := GenericOpenAPIError{ 728 body: localVarBody, 729 error: err.Error(), 730 } 731 return localVarReturnValue, localVarHttpResponse, newErr 732 } 733 734 return localVarReturnValue, localVarHttpResponse, nil 735 } 736 737 /* 738 MessagesApiService Create Pager Message 739 <p style='font-style:italic;'>Since 1.0.2</p><p>Creates and sends a pager message.</p><h4>Required Permissions</h4><table class='fullwidth'><thead><tr><th>Permission</th><th>Description</th></tr></thead><tbody><tr><td class='code'>InternalMessages</td><td>Sending and receiving intra-company text messages</td></tr><tr><td class='code'>ReadMessages</td><td>Viewing user messages</td></tr></tbody></table><h4>Usage Plan Group</h4><p>Medium</p> 740 * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). 741 * @param accountId Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session 742 * @param extensionId Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session 743 * @param createPagerMessageRequest JSON body 744 @return GetMessageInfoResponse 745 */ 746 func (a *MessagesApiService) SendInternalMessage(ctx context.Context, accountId string, extensionId string, createPagerMessageRequest CreatePagerMessageRequest) (GetMessageInfoResponse, *http.Response, error) { 747 var ( 748 localVarHttpMethod = strings.ToUpper("Post") 749 localVarPostBody interface{} 750 localVarFormFileName string 751 localVarFileName string 752 localVarFileBytes []byte 753 localVarReturnValue GetMessageInfoResponse 754 ) 755 756 // create path and map variables 757 localVarPath := a.client.cfg.BasePath + "/restapi/v1.0/account/{accountId}/extension/{extensionId}/company-pager" 758 localVarPath = strings.Replace(localVarPath, "{"+"accountId"+"}", fmt.Sprintf("%v", accountId), -1) 759 localVarPath = strings.Replace(localVarPath, "{"+"extensionId"+"}", fmt.Sprintf("%v", extensionId), -1) 760 761 localVarHeaderParams := make(map[string]string) 762 localVarQueryParams := url.Values{} 763 localVarFormParams := url.Values{} 764 765 // to determine the Content-Type header 766 localVarHttpContentTypes := []string{"application/json"} 767 768 // set Content-Type header 769 localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) 770 if localVarHttpContentType != "" { 771 localVarHeaderParams["Content-Type"] = localVarHttpContentType 772 } 773 774 // to determine the Accept header 775 localVarHttpHeaderAccepts := []string{"application/json"} 776 777 // set Accept header 778 localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) 779 if localVarHttpHeaderAccept != "" { 780 localVarHeaderParams["Accept"] = localVarHttpHeaderAccept 781 } 782 // body params 783 localVarPostBody = &createPagerMessageRequest 784 r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) 785 if err != nil { 786 return localVarReturnValue, nil, err 787 } 788 789 localVarHttpResponse, err := a.client.callAPI(r) 790 if err != nil || localVarHttpResponse == nil { 791 return localVarReturnValue, localVarHttpResponse, err 792 } 793 794 localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) 795 localVarHttpResponse.Body.Close() 796 if err != nil { 797 return localVarReturnValue, localVarHttpResponse, err 798 } 799 800 if localVarHttpResponse.StatusCode >= 300 { 801 newErr := GenericOpenAPIError{ 802 body: localVarBody, 803 error: localVarHttpResponse.Status, 804 } 805 if localVarHttpResponse.StatusCode == 0 { 806 var v GetMessageInfoResponse 807 err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) 808 if err != nil { 809 newErr.error = err.Error() 810 return localVarReturnValue, localVarHttpResponse, newErr 811 } 812 newErr.model = v 813 return localVarReturnValue, localVarHttpResponse, newErr 814 } 815 return localVarReturnValue, localVarHttpResponse, newErr 816 } 817 818 err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) 819 if err != nil { 820 newErr := GenericOpenAPIError{ 821 body: localVarBody, 822 error: err.Error(), 823 } 824 return localVarReturnValue, localVarHttpResponse, newErr 825 } 826 827 return localVarReturnValue, localVarHttpResponse, nil 828 } 829 830 /* 831 MessagesApiService Create SMS Message 832 <p style='font-style:italic;'>Since 1.0.2</p><p>Creates and sends new SMS message. Sending SMS messages simultaneously to different recipients is limited up to 50 requests per minute; relevant for all client applications.</p><h4>Required Permissions</h4><table class='fullwidth'><thead><tr><th>Permission</th><th>Description</th></tr></thead><tbody><tr><td class='code'>SMS</td><td>Sending and receiving SMS (text) messages</td></tr><tr><td class='code'>ReadMessages</td><td>Viewing user messages</td></tr></tbody></table><h4>Usage Plan Group</h4><p>Medium</p> 833 * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). 834 * @param accountId Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session 835 * @param extensionId Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session 836 * @param createSmsMessage JSON body 837 @return GetMessageInfoResponseIntId 838 */ 839 func (a *MessagesApiService) SendSMS(ctx context.Context, accountId string, extensionId string, createSmsMessage CreateSmsMessage) (GetMessageInfoResponseIntId, *http.Response, error) { 840 var ( 841 localVarHttpMethod = strings.ToUpper("Post") 842 localVarPostBody interface{} 843 localVarFormFileName string 844 localVarFileName string 845 localVarFileBytes []byte 846 localVarReturnValue GetMessageInfoResponseIntId 847 ) 848 849 // create path and map variables 850 localVarPath := a.client.cfg.BasePath + "/restapi/v1.0/account/{accountId}/extension/{extensionId}/sms" 851 localVarPath = strings.Replace(localVarPath, "{"+"accountId"+"}", fmt.Sprintf("%v", accountId), -1) 852 localVarPath = strings.Replace(localVarPath, "{"+"extensionId"+"}", fmt.Sprintf("%v", extensionId), -1) 853 854 localVarHeaderParams := make(map[string]string) 855 localVarQueryParams := url.Values{} 856 localVarFormParams := url.Values{} 857 858 // to determine the Content-Type header 859 localVarHttpContentTypes := []string{"application/json"} 860 861 // set Content-Type header 862 localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) 863 if localVarHttpContentType != "" { 864 localVarHeaderParams["Content-Type"] = localVarHttpContentType 865 } 866 867 // to determine the Accept header 868 localVarHttpHeaderAccepts := []string{"application/json"} 869 870 // set Accept header 871 localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) 872 if localVarHttpHeaderAccept != "" { 873 localVarHeaderParams["Accept"] = localVarHttpHeaderAccept 874 } 875 // body params 876 localVarPostBody = &createSmsMessage 877 r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) 878 if err != nil { 879 return localVarReturnValue, nil, err 880 } 881 882 localVarHttpResponse, err := a.client.callAPI(r) 883 if err != nil || localVarHttpResponse == nil { 884 return localVarReturnValue, localVarHttpResponse, err 885 } 886 887 localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) 888 localVarHttpResponse.Body.Close() 889 if err != nil { 890 return localVarReturnValue, localVarHttpResponse, err 891 } 892 893 if localVarHttpResponse.StatusCode >= 300 { 894 newErr := GenericOpenAPIError{ 895 body: localVarBody, 896 error: localVarHttpResponse.Status, 897 } 898 if localVarHttpResponse.StatusCode == 0 { 899 var v GetMessageInfoResponseIntId 900 err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) 901 if err != nil { 902 newErr.error = err.Error() 903 return localVarReturnValue, localVarHttpResponse, newErr 904 } 905 newErr.model = v 906 return localVarReturnValue, localVarHttpResponse, newErr 907 } 908 return localVarReturnValue, localVarHttpResponse, newErr 909 } 910 911 err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) 912 if err != nil { 913 newErr := GenericOpenAPIError{ 914 body: localVarBody, 915 error: err.Error(), 916 } 917 return localVarReturnValue, localVarHttpResponse, newErr 918 } 919 920 return localVarReturnValue, localVarHttpResponse, nil 921 } 922 923 /* 924 MessagesApiService Get Message Sync 925 <p style='font-style:italic;'>Since 1.0.4 (Release 5.13)</p><p>Provides facilities to synchronize mailbox content stored externally with server state.</p><h4>Required Permissions</h4><table class='fullwidth'><thead><tr><th>Permission</th><th>Description</th></tr></thead><tbody><tr><td class='code'>ReadMessages</td><td>Viewing user messages</td></tr></tbody></table><h4>Usage Plan Group</h4><p>Light</p> 926 * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). 927 * @param accountId Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session 928 * @param extensionId Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session 929 * @param optional nil or *SyncMessagesOpts - Optional Parameters: 930 * @param "ConversationId" (optional.Int32) - Conversation identifier for the resulting messages. Meaningful for SMS and Pager messages only. 931 * @param "DateFrom" (optional.String) - The start datetime for resulting messages in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z. The default value is dateTo minus 24 hours 932 * @param "DateTo" (optional.String) - The end datetime for resulting messages in ISO 8601 format including timezone, for example 2016-03-10T18:07:52.534Z. The default value is current time 933 * @param "Direction" (optional.Interface of []string) - Direction for the resulting messages. If not specified, both inbound and outbound messages are returned. Multiple values are accepted 934 * @param "DistinctConversations" (optional.Bool) - If 'True', then the latest messages per every conversation ID are returned 935 * @param "MessageType" (optional.Interface of []string) - Type for the resulting messages. If not specified, all types of messages are returned. Multiple values are accepted 936 * @param "RecordCount" (optional.Int32) - Limits the number of records to be returned (works in combination with dateFrom and dateTo if specified) 937 * @param "SyncToken" (optional.String) - Value of syncToken property of last sync request response 938 * @param "SyncType" (optional.Interface of []string) - Type of message synchronization 939 @return GetMessageSyncResponse 940 */ 941 942 type SyncMessagesOpts struct { 943 ConversationId optional.Int32 944 DateFrom optional.String 945 DateTo optional.String 946 Direction optional.Interface 947 DistinctConversations optional.Bool 948 MessageType optional.Interface 949 RecordCount optional.Int32 950 SyncToken optional.String 951 SyncType optional.Interface 952 } 953 954 func (a *MessagesApiService) SyncMessages(ctx context.Context, accountId string, extensionId string, localVarOptionals *SyncMessagesOpts) (GetMessageSyncResponse, *http.Response, error) { 955 var ( 956 localVarHttpMethod = strings.ToUpper("Get") 957 localVarPostBody interface{} 958 localVarFormFileName string 959 localVarFileName string 960 localVarFileBytes []byte 961 localVarReturnValue GetMessageSyncResponse 962 ) 963 964 // create path and map variables 965 localVarPath := a.client.cfg.BasePath + "/restapi/v1.0/account/{accountId}/extension/{extensionId}/message-sync" 966 localVarPath = strings.Replace(localVarPath, "{"+"accountId"+"}", fmt.Sprintf("%v", accountId), -1) 967 localVarPath = strings.Replace(localVarPath, "{"+"extensionId"+"}", fmt.Sprintf("%v", extensionId), -1) 968 969 localVarHeaderParams := make(map[string]string) 970 localVarQueryParams := url.Values{} 971 localVarFormParams := url.Values{} 972 973 if localVarOptionals != nil && localVarOptionals.ConversationId.IsSet() { 974 localVarQueryParams.Add("conversationId", parameterToString(localVarOptionals.ConversationId.Value(), "")) 975 } 976 if localVarOptionals != nil && localVarOptionals.DateFrom.IsSet() { 977 localVarQueryParams.Add("dateFrom", parameterToString(localVarOptionals.DateFrom.Value(), "")) 978 } 979 if localVarOptionals != nil && localVarOptionals.DateTo.IsSet() { 980 localVarQueryParams.Add("dateTo", parameterToString(localVarOptionals.DateTo.Value(), "")) 981 } 982 if localVarOptionals != nil && localVarOptionals.Direction.IsSet() { 983 localVarQueryParams.Add("direction", parameterToString(localVarOptionals.Direction.Value(), "multi")) 984 } 985 if localVarOptionals != nil && localVarOptionals.DistinctConversations.IsSet() { 986 localVarQueryParams.Add("distinctConversations", parameterToString(localVarOptionals.DistinctConversations.Value(), "")) 987 } 988 if localVarOptionals != nil && localVarOptionals.MessageType.IsSet() { 989 localVarQueryParams.Add("messageType", parameterToString(localVarOptionals.MessageType.Value(), "multi")) 990 } 991 if localVarOptionals != nil && localVarOptionals.RecordCount.IsSet() { 992 localVarQueryParams.Add("recordCount", parameterToString(localVarOptionals.RecordCount.Value(), "")) 993 } 994 if localVarOptionals != nil && localVarOptionals.SyncToken.IsSet() { 995 localVarQueryParams.Add("syncToken", parameterToString(localVarOptionals.SyncToken.Value(), "")) 996 } 997 if localVarOptionals != nil && localVarOptionals.SyncType.IsSet() { 998 localVarQueryParams.Add("syncType", parameterToString(localVarOptionals.SyncType.Value(), "multi")) 999 } 1000 // to determine the Content-Type header 1001 localVarHttpContentTypes := []string{} 1002 1003 // set Content-Type header 1004 localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) 1005 if localVarHttpContentType != "" { 1006 localVarHeaderParams["Content-Type"] = localVarHttpContentType 1007 } 1008 1009 // to determine the Accept header 1010 localVarHttpHeaderAccepts := []string{"application/json"} 1011 1012 // set Accept header 1013 localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) 1014 if localVarHttpHeaderAccept != "" { 1015 localVarHeaderParams["Accept"] = localVarHttpHeaderAccept 1016 } 1017 r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) 1018 if err != nil { 1019 return localVarReturnValue, nil, err 1020 } 1021 1022 localVarHttpResponse, err := a.client.callAPI(r) 1023 if err != nil || localVarHttpResponse == nil { 1024 return localVarReturnValue, localVarHttpResponse, err 1025 } 1026 1027 localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) 1028 localVarHttpResponse.Body.Close() 1029 if err != nil { 1030 return localVarReturnValue, localVarHttpResponse, err 1031 } 1032 1033 if localVarHttpResponse.StatusCode >= 300 { 1034 newErr := GenericOpenAPIError{ 1035 body: localVarBody, 1036 error: localVarHttpResponse.Status, 1037 } 1038 if localVarHttpResponse.StatusCode == 0 { 1039 var v GetMessageSyncResponse 1040 err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) 1041 if err != nil { 1042 newErr.error = err.Error() 1043 return localVarReturnValue, localVarHttpResponse, newErr 1044 } 1045 newErr.model = v 1046 return localVarReturnValue, localVarHttpResponse, newErr 1047 } 1048 return localVarReturnValue, localVarHttpResponse, newErr 1049 } 1050 1051 err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) 1052 if err != nil { 1053 newErr := GenericOpenAPIError{ 1054 body: localVarBody, 1055 error: err.Error(), 1056 } 1057 return localVarReturnValue, localVarHttpResponse, newErr 1058 } 1059 1060 return localVarReturnValue, localVarHttpResponse, nil 1061 } 1062 1063 /* 1064 MessagesApiService Update Message(s) by ID 1065 <p style='font-style:italic;'>Since 1.0.2</p><p>Updates message(s) by ID(s). Batch request is supported, see Batch Requests for details. Currently, only the message read status updating is supported.</p><h4>Required Permissions</h4><table class='fullwidth'><thead><tr><th>Permission</th><th>Description</th></tr></thead><tbody><tr><td class='code'>EditMessages</td><td>Viewing and updating user messages</td></tr><tr><td class='code'>ReadMessages</td><td>Viewing user messages</td></tr></tbody></table><h4>Usage Plan Group</h4><p>Medium</p> 1066 * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). 1067 * @param accountId Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session 1068 * @param extensionId Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session 1069 * @param messageId Internal identifier of a message 1070 * @param updateMessageRequest JSON body 1071 @return GetMessageInfoResponse 1072 */ 1073 func (a *MessagesApiService) UpdateMessage(ctx context.Context, accountId string, extensionId string, messageId int32, updateMessageRequest UpdateMessageRequest) (GetMessageInfoResponse, *http.Response, error) { 1074 var ( 1075 localVarHttpMethod = strings.ToUpper("Put") 1076 localVarPostBody interface{} 1077 localVarFormFileName string 1078 localVarFileName string 1079 localVarFileBytes []byte 1080 localVarReturnValue GetMessageInfoResponse 1081 ) 1082 1083 // create path and map variables 1084 localVarPath := a.client.cfg.BasePath + "/restapi/v1.0/account/{accountId}/extension/{extensionId}/message-store/{messageId}" 1085 localVarPath = strings.Replace(localVarPath, "{"+"accountId"+"}", fmt.Sprintf("%v", accountId), -1) 1086 localVarPath = strings.Replace(localVarPath, "{"+"extensionId"+"}", fmt.Sprintf("%v", extensionId), -1) 1087 localVarPath = strings.Replace(localVarPath, "{"+"messageId"+"}", fmt.Sprintf("%v", messageId), -1) 1088 1089 localVarHeaderParams := make(map[string]string) 1090 localVarQueryParams := url.Values{} 1091 localVarFormParams := url.Values{} 1092 1093 // to determine the Content-Type header 1094 localVarHttpContentTypes := []string{"application/json"} 1095 1096 // set Content-Type header 1097 localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) 1098 if localVarHttpContentType != "" { 1099 localVarHeaderParams["Content-Type"] = localVarHttpContentType 1100 } 1101 1102 // to determine the Accept header 1103 localVarHttpHeaderAccepts := []string{"application/json"} 1104 1105 // set Accept header 1106 localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) 1107 if localVarHttpHeaderAccept != "" { 1108 localVarHeaderParams["Accept"] = localVarHttpHeaderAccept 1109 } 1110 // body params 1111 localVarPostBody = &updateMessageRequest 1112 r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) 1113 if err != nil { 1114 return localVarReturnValue, nil, err 1115 } 1116 1117 localVarHttpResponse, err := a.client.callAPI(r) 1118 if err != nil || localVarHttpResponse == nil { 1119 return localVarReturnValue, localVarHttpResponse, err 1120 } 1121 1122 localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) 1123 localVarHttpResponse.Body.Close() 1124 if err != nil { 1125 return localVarReturnValue, localVarHttpResponse, err 1126 } 1127 1128 if localVarHttpResponse.StatusCode >= 300 { 1129 newErr := GenericOpenAPIError{ 1130 body: localVarBody, 1131 error: localVarHttpResponse.Status, 1132 } 1133 if localVarHttpResponse.StatusCode == 0 { 1134 var v GetMessageInfoResponse 1135 err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) 1136 if err != nil { 1137 newErr.error = err.Error() 1138 return localVarReturnValue, localVarHttpResponse, newErr 1139 } 1140 newErr.model = v 1141 return localVarReturnValue, localVarHttpResponse, newErr 1142 } 1143 return localVarReturnValue, localVarHttpResponse, newErr 1144 } 1145 1146 err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) 1147 if err != nil { 1148 newErr := GenericOpenAPIError{ 1149 body: localVarBody, 1150 error: err.Error(), 1151 } 1152 return localVarReturnValue, localVarHttpResponse, newErr 1153 } 1154 1155 return localVarReturnValue, localVarHttpResponse, nil 1156 }