github.com/grokify/go-ringcentral-client@v0.3.31/office/v1/client/api_push_notifications.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 PushNotificationsApiService service 28 29 /* 30 PushNotificationsApiService Create Subscription 31 <p style='font-style:italic;'>Since 1.0.6 (Release 5.15)</p><p>Creates a new subscription.</p><h4>Usage Plan Group</h4><p>Medium</p> 32 * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). 33 * @param createSubscriptionRequest JSON body 34 @return SubscriptionInfo 35 */ 36 func (a *PushNotificationsApiService) CreateSubscription(ctx context.Context, createSubscriptionRequest CreateSubscriptionRequest) (SubscriptionInfo, *http.Response, error) { 37 var ( 38 localVarHttpMethod = strings.ToUpper("Post") 39 localVarPostBody interface{} 40 localVarFormFileName string 41 localVarFileName string 42 localVarFileBytes []byte 43 localVarReturnValue SubscriptionInfo 44 ) 45 46 // create path and map variables 47 localVarPath := a.client.cfg.BasePath + "/restapi/v1.0/subscription" 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{"application/json"} 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{"application/json"} 64 65 // set Accept header 66 localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) 67 if localVarHttpHeaderAccept != "" { 68 localVarHeaderParams["Accept"] = localVarHttpHeaderAccept 69 } 70 // body params 71 localVarPostBody = &createSubscriptionRequest 72 r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) 73 if err != nil { 74 return localVarReturnValue, nil, err 75 } 76 77 localVarHttpResponse, err := a.client.callAPI(r) 78 if err != nil || localVarHttpResponse == nil { 79 return localVarReturnValue, localVarHttpResponse, err 80 } 81 82 localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) 83 localVarHttpResponse.Body.Close() 84 if err != nil { 85 return localVarReturnValue, localVarHttpResponse, err 86 } 87 88 if localVarHttpResponse.StatusCode >= 300 { 89 newErr := GenericOpenAPIError{ 90 body: localVarBody, 91 error: localVarHttpResponse.Status, 92 } 93 if localVarHttpResponse.StatusCode == 0 { 94 var v SubscriptionInfo 95 err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) 96 if err != nil { 97 newErr.error = err.Error() 98 return localVarReturnValue, localVarHttpResponse, newErr 99 } 100 newErr.model = v 101 return localVarReturnValue, localVarHttpResponse, newErr 102 } 103 return localVarReturnValue, localVarHttpResponse, newErr 104 } 105 106 err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) 107 if err != nil { 108 newErr := GenericOpenAPIError{ 109 body: localVarBody, 110 error: err.Error(), 111 } 112 return localVarReturnValue, localVarHttpResponse, newErr 113 } 114 115 return localVarReturnValue, localVarHttpResponse, nil 116 } 117 118 /* 119 PushNotificationsApiService Cancel Subscription 120 <p style='font-style:italic;'></p><p>Cancels the existent subscription.</p><h4>Usage Plan Group</h4><p>Medium</p> 121 * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). 122 * @param subscriptionId Internal identifier of a subscription 123 */ 124 func (a *PushNotificationsApiService) DeleteSubscription(ctx context.Context, subscriptionId string) (*http.Response, error) { 125 var ( 126 localVarHttpMethod = strings.ToUpper("Delete") 127 localVarPostBody interface{} 128 localVarFormFileName string 129 localVarFileName string 130 localVarFileBytes []byte 131 ) 132 133 // create path and map variables 134 localVarPath := a.client.cfg.BasePath + "/restapi/v1.0/subscription/{subscriptionId}" 135 localVarPath = strings.Replace(localVarPath, "{"+"subscriptionId"+"}", fmt.Sprintf("%v", subscriptionId), -1) 136 137 localVarHeaderParams := make(map[string]string) 138 localVarQueryParams := url.Values{} 139 localVarFormParams := url.Values{} 140 141 // to determine the Content-Type header 142 localVarHttpContentTypes := []string{} 143 144 // set Content-Type header 145 localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) 146 if localVarHttpContentType != "" { 147 localVarHeaderParams["Content-Type"] = localVarHttpContentType 148 } 149 150 // to determine the Accept header 151 localVarHttpHeaderAccepts := []string{} 152 153 // set Accept header 154 localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) 155 if localVarHttpHeaderAccept != "" { 156 localVarHeaderParams["Accept"] = localVarHttpHeaderAccept 157 } 158 r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) 159 if err != nil { 160 return nil, err 161 } 162 163 localVarHttpResponse, err := a.client.callAPI(r) 164 if err != nil || localVarHttpResponse == nil { 165 return localVarHttpResponse, err 166 } 167 168 localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) 169 localVarHttpResponse.Body.Close() 170 if err != nil { 171 return localVarHttpResponse, err 172 } 173 174 if localVarHttpResponse.StatusCode >= 300 { 175 newErr := GenericOpenAPIError{ 176 body: localVarBody, 177 error: localVarHttpResponse.Status, 178 } 179 return localVarHttpResponse, newErr 180 } 181 182 return localVarHttpResponse, nil 183 } 184 185 /* 186 PushNotificationsApiService Get Subscriptions 187 * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). 188 @return RecordsCollectionResourceSubscriptionResponse 189 */ 190 func (a *PushNotificationsApiService) GetSubscriptions(ctx context.Context) (RecordsCollectionResourceSubscriptionResponse, *http.Response, error) { 191 var ( 192 localVarHttpMethod = strings.ToUpper("Get") 193 localVarPostBody interface{} 194 localVarFormFileName string 195 localVarFileName string 196 localVarFileBytes []byte 197 localVarReturnValue RecordsCollectionResourceSubscriptionResponse 198 ) 199 200 // create path and map variables 201 localVarPath := a.client.cfg.BasePath + "/restapi/v1.0/subscription" 202 203 localVarHeaderParams := make(map[string]string) 204 localVarQueryParams := url.Values{} 205 localVarFormParams := url.Values{} 206 207 // to determine the Content-Type header 208 localVarHttpContentTypes := []string{} 209 210 // set Content-Type header 211 localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) 212 if localVarHttpContentType != "" { 213 localVarHeaderParams["Content-Type"] = localVarHttpContentType 214 } 215 216 // to determine the Accept header 217 localVarHttpHeaderAccepts := []string{"application/json"} 218 219 // set Accept header 220 localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) 221 if localVarHttpHeaderAccept != "" { 222 localVarHeaderParams["Accept"] = localVarHttpHeaderAccept 223 } 224 r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) 225 if err != nil { 226 return localVarReturnValue, nil, err 227 } 228 229 localVarHttpResponse, err := a.client.callAPI(r) 230 if err != nil || localVarHttpResponse == nil { 231 return localVarReturnValue, localVarHttpResponse, err 232 } 233 234 localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) 235 localVarHttpResponse.Body.Close() 236 if err != nil { 237 return localVarReturnValue, localVarHttpResponse, err 238 } 239 240 if localVarHttpResponse.StatusCode >= 300 { 241 newErr := GenericOpenAPIError{ 242 body: localVarBody, 243 error: localVarHttpResponse.Status, 244 } 245 if localVarHttpResponse.StatusCode == 0 { 246 var v RecordsCollectionResourceSubscriptionResponse 247 err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) 248 if err != nil { 249 newErr.error = err.Error() 250 return localVarReturnValue, localVarHttpResponse, newErr 251 } 252 newErr.model = v 253 return localVarReturnValue, localVarHttpResponse, newErr 254 } 255 return localVarReturnValue, localVarHttpResponse, newErr 256 } 257 258 err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) 259 if err != nil { 260 newErr := GenericOpenAPIError{ 261 body: localVarBody, 262 error: err.Error(), 263 } 264 return localVarReturnValue, localVarHttpResponse, newErr 265 } 266 267 return localVarReturnValue, localVarHttpResponse, nil 268 } 269 270 /* 271 PushNotificationsApiService Get Subscription 272 <p style='font-style:italic;'>Since 1.0.6 (Release 5.15)</p><p>Returns the requested subscription.</p><h4>Usage Plan Group</h4><p>Light</p> 273 * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). 274 * @param subscriptionId Internal identifier of a subscription 275 @return SubscriptionInfo 276 */ 277 func (a *PushNotificationsApiService) LoadSubscription(ctx context.Context, subscriptionId int32) (SubscriptionInfo, *http.Response, error) { 278 var ( 279 localVarHttpMethod = strings.ToUpper("Get") 280 localVarPostBody interface{} 281 localVarFormFileName string 282 localVarFileName string 283 localVarFileBytes []byte 284 localVarReturnValue SubscriptionInfo 285 ) 286 287 // create path and map variables 288 localVarPath := a.client.cfg.BasePath + "/restapi/v1.0/subscription/{subscriptionId}" 289 localVarPath = strings.Replace(localVarPath, "{"+"subscriptionId"+"}", fmt.Sprintf("%v", subscriptionId), -1) 290 291 localVarHeaderParams := make(map[string]string) 292 localVarQueryParams := url.Values{} 293 localVarFormParams := url.Values{} 294 295 // to determine the Content-Type header 296 localVarHttpContentTypes := []string{} 297 298 // set Content-Type header 299 localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) 300 if localVarHttpContentType != "" { 301 localVarHeaderParams["Content-Type"] = localVarHttpContentType 302 } 303 304 // to determine the Accept header 305 localVarHttpHeaderAccepts := []string{"application/json"} 306 307 // set Accept header 308 localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) 309 if localVarHttpHeaderAccept != "" { 310 localVarHeaderParams["Accept"] = localVarHttpHeaderAccept 311 } 312 r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) 313 if err != nil { 314 return localVarReturnValue, nil, err 315 } 316 317 localVarHttpResponse, err := a.client.callAPI(r) 318 if err != nil || localVarHttpResponse == nil { 319 return localVarReturnValue, localVarHttpResponse, err 320 } 321 322 localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) 323 localVarHttpResponse.Body.Close() 324 if err != nil { 325 return localVarReturnValue, localVarHttpResponse, err 326 } 327 328 if localVarHttpResponse.StatusCode >= 300 { 329 newErr := GenericOpenAPIError{ 330 body: localVarBody, 331 error: localVarHttpResponse.Status, 332 } 333 if localVarHttpResponse.StatusCode == 0 { 334 var v SubscriptionInfo 335 err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) 336 if err != nil { 337 newErr.error = err.Error() 338 return localVarReturnValue, localVarHttpResponse, newErr 339 } 340 newErr.model = v 341 return localVarReturnValue, localVarHttpResponse, newErr 342 } 343 return localVarReturnValue, localVarHttpResponse, newErr 344 } 345 346 err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) 347 if err != nil { 348 newErr := GenericOpenAPIError{ 349 body: localVarBody, 350 error: err.Error(), 351 } 352 return localVarReturnValue, localVarHttpResponse, newErr 353 } 354 355 return localVarReturnValue, localVarHttpResponse, nil 356 } 357 358 /* 359 PushNotificationsApiService Renew Subscription 360 <p style='font-style:italic;'>Since 1.0.26 (Release 8.12)</p><p>Renews an existent subscription by ID by posting request with an empty body..</p><h4>Usage Plan Group</h4><p>Medium</p> 361 * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). 362 * @param subscriptionId 363 @return SubscriptionInfo 364 */ 365 func (a *PushNotificationsApiService) RenewSubscription(ctx context.Context, subscriptionId string) (SubscriptionInfo, *http.Response, error) { 366 var ( 367 localVarHttpMethod = strings.ToUpper("Post") 368 localVarPostBody interface{} 369 localVarFormFileName string 370 localVarFileName string 371 localVarFileBytes []byte 372 localVarReturnValue SubscriptionInfo 373 ) 374 375 // create path and map variables 376 localVarPath := a.client.cfg.BasePath + "/restapi/v1.0/subscription/{subscriptionId}/renew" 377 localVarPath = strings.Replace(localVarPath, "{"+"subscriptionId"+"}", fmt.Sprintf("%v", subscriptionId), -1) 378 379 localVarHeaderParams := make(map[string]string) 380 localVarQueryParams := url.Values{} 381 localVarFormParams := url.Values{} 382 383 // to determine the Content-Type header 384 localVarHttpContentTypes := []string{} 385 386 // set Content-Type header 387 localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) 388 if localVarHttpContentType != "" { 389 localVarHeaderParams["Content-Type"] = localVarHttpContentType 390 } 391 392 // to determine the Accept header 393 localVarHttpHeaderAccepts := []string{"application/json"} 394 395 // set Accept header 396 localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) 397 if localVarHttpHeaderAccept != "" { 398 localVarHeaderParams["Accept"] = localVarHttpHeaderAccept 399 } 400 r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) 401 if err != nil { 402 return localVarReturnValue, nil, err 403 } 404 405 localVarHttpResponse, err := a.client.callAPI(r) 406 if err != nil || localVarHttpResponse == nil { 407 return localVarReturnValue, localVarHttpResponse, err 408 } 409 410 localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) 411 localVarHttpResponse.Body.Close() 412 if err != nil { 413 return localVarReturnValue, localVarHttpResponse, err 414 } 415 416 if localVarHttpResponse.StatusCode >= 300 { 417 newErr := GenericOpenAPIError{ 418 body: localVarBody, 419 error: localVarHttpResponse.Status, 420 } 421 if localVarHttpResponse.StatusCode == 0 { 422 var v SubscriptionInfo 423 err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) 424 if err != nil { 425 newErr.error = err.Error() 426 return localVarReturnValue, localVarHttpResponse, newErr 427 } 428 newErr.model = v 429 return localVarReturnValue, localVarHttpResponse, newErr 430 } 431 return localVarReturnValue, localVarHttpResponse, newErr 432 } 433 434 err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) 435 if err != nil { 436 newErr := GenericOpenAPIError{ 437 body: localVarBody, 438 error: err.Error(), 439 } 440 return localVarReturnValue, localVarHttpResponse, newErr 441 } 442 443 return localVarReturnValue, localVarHttpResponse, nil 444 } 445 446 /* 447 PushNotificationsApiService Renew Subscription / Update Event Filters 448 <p style='font-style:italic;'>Since 1.0.6 (Release 5.15)</p><p>Renews the existent subscription if the request body is empty. If event filters are specified, calling this method modifies the event filters for the existing subscription. The client application can extend or narrow the events for which it receives notifications in the frame of one subscription.</p><h4>Usage Plan Group</h4><p>Medium</p> 449 * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). 450 * @param subscriptionId Internal identifier of a subscription 451 * @param modifySubscriptionRequest JSON body 452 * @param optional nil or *UpdateSubscriptionOpts - Optional Parameters: 453 * @param "Aggregated" (optional.Bool) - If 'True' then aggregated presence status is returned in a notification payload 454 @return SubscriptionInfo 455 */ 456 457 type UpdateSubscriptionOpts struct { 458 Aggregated optional.Bool 459 } 460 461 func (a *PushNotificationsApiService) UpdateSubscription(ctx context.Context, subscriptionId string, modifySubscriptionRequest ModifySubscriptionRequest, localVarOptionals *UpdateSubscriptionOpts) (SubscriptionInfo, *http.Response, error) { 462 var ( 463 localVarHttpMethod = strings.ToUpper("Put") 464 localVarPostBody interface{} 465 localVarFormFileName string 466 localVarFileName string 467 localVarFileBytes []byte 468 localVarReturnValue SubscriptionInfo 469 ) 470 471 // create path and map variables 472 localVarPath := a.client.cfg.BasePath + "/restapi/v1.0/subscription/{subscriptionId}" 473 localVarPath = strings.Replace(localVarPath, "{"+"subscriptionId"+"}", fmt.Sprintf("%v", subscriptionId), -1) 474 475 localVarHeaderParams := make(map[string]string) 476 localVarQueryParams := url.Values{} 477 localVarFormParams := url.Values{} 478 479 if localVarOptionals != nil && localVarOptionals.Aggregated.IsSet() { 480 localVarQueryParams.Add("aggregated", parameterToString(localVarOptionals.Aggregated.Value(), "")) 481 } 482 // to determine the Content-Type header 483 localVarHttpContentTypes := []string{"application/json"} 484 485 // set Content-Type header 486 localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) 487 if localVarHttpContentType != "" { 488 localVarHeaderParams["Content-Type"] = localVarHttpContentType 489 } 490 491 // to determine the Accept header 492 localVarHttpHeaderAccepts := []string{"application/json"} 493 494 // set Accept header 495 localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) 496 if localVarHttpHeaderAccept != "" { 497 localVarHeaderParams["Accept"] = localVarHttpHeaderAccept 498 } 499 // body params 500 localVarPostBody = &modifySubscriptionRequest 501 r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) 502 if err != nil { 503 return localVarReturnValue, nil, err 504 } 505 506 localVarHttpResponse, err := a.client.callAPI(r) 507 if err != nil || localVarHttpResponse == nil { 508 return localVarReturnValue, localVarHttpResponse, err 509 } 510 511 localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) 512 localVarHttpResponse.Body.Close() 513 if err != nil { 514 return localVarReturnValue, localVarHttpResponse, err 515 } 516 517 if localVarHttpResponse.StatusCode >= 300 { 518 newErr := GenericOpenAPIError{ 519 body: localVarBody, 520 error: localVarHttpResponse.Status, 521 } 522 if localVarHttpResponse.StatusCode == 0 { 523 var v SubscriptionInfo 524 err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) 525 if err != nil { 526 newErr.error = err.Error() 527 return localVarReturnValue, localVarHttpResponse, newErr 528 } 529 newErr.model = v 530 return localVarReturnValue, localVarHttpResponse, newErr 531 } 532 return localVarReturnValue, localVarHttpResponse, newErr 533 } 534 535 err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) 536 if err != nil { 537 newErr := GenericOpenAPIError{ 538 body: localVarBody, 539 error: err.Error(), 540 } 541 return localVarReturnValue, localVarHttpResponse, newErr 542 } 543 544 return localVarReturnValue, localVarHttpResponse, nil 545 }