github.com/grokify/go-ringcentral-client@v0.3.31/office/v1/client/api_phone_numbers.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 PhoneNumbersApiService service
    28  
    29  /*
    30  PhoneNumbersApiService Get Extension Phone Number List
    31  &lt;p style&#x3D;&#39;font-style:italic;&#39;&gt;Since 1.0.2&lt;/p&gt;&lt;p&gt;Returns the list of phone numbers that are used by a particular extension, and can be filtered by the phone number type. The returned list contains all numbers which are directly mapped to a given extension plus the features and also company-level numbers which may be used when performing different operations on behalf of this extension.&lt;/p&gt;&lt;h4&gt;Required Permissions&lt;/h4&gt;&lt;table class&#x3D;&#39;fullwidth&#39;&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Permission&lt;/th&gt;&lt;th&gt;Description&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class&#x3D;&#39;code&#39;&gt;ReadAccounts&lt;/td&gt;&lt;td&gt;Viewing user account info (including name, business name, address and phone number/account number)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;h4&gt;Usage Plan Group&lt;/h4&gt;&lt;p&gt;Light&lt;/p&gt;
    32   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
    33   * @param accountId Internal identifier of a RingCentral account or tilde (~) to indicate the account logged-in within the current session
    34   * @param extensionId Internal identifier of an extension or tilde (~) to indicate the extension assigned to the account logged-in within the current session
    35   * @param optional nil or *ListExtensionPhoneNumbersOpts - Optional Parameters:
    36   * @param "UsageType" (optional.Interface of []string) -  Usage type of the phone number
    37   * @param "Page" (optional.Int32) -  Indicates the page number to retrieve. Only positive number values are allowed. Default value is '1'
    38   * @param "PerPage" (optional.Int32) -  Indicates the page size (number of items). If not specified, the value is '100' by default
    39  @return GetExtensionPhoneNumbersResponse
    40  */
    41  
    42  type ListExtensionPhoneNumbersOpts struct {
    43  	UsageType optional.Interface
    44  	Page      optional.Int32
    45  	PerPage   optional.Int32
    46  }
    47  
    48  func (a *PhoneNumbersApiService) ListExtensionPhoneNumbers(ctx context.Context, accountId string, extensionId string, localVarOptionals *ListExtensionPhoneNumbersOpts) (GetExtensionPhoneNumbersResponse, *http.Response, error) {
    49  	var (
    50  		localVarHttpMethod   = strings.ToUpper("Get")
    51  		localVarPostBody     interface{}
    52  		localVarFormFileName string
    53  		localVarFileName     string
    54  		localVarFileBytes    []byte
    55  		localVarReturnValue  GetExtensionPhoneNumbersResponse
    56  	)
    57  
    58  	// create path and map variables
    59  	localVarPath := a.client.cfg.BasePath + "/restapi/v1.0/account/{accountId}/extension/{extensionId}/phone-number"
    60  	localVarPath = strings.Replace(localVarPath, "{"+"accountId"+"}", fmt.Sprintf("%v", accountId), -1)
    61  	localVarPath = strings.Replace(localVarPath, "{"+"extensionId"+"}", fmt.Sprintf("%v", extensionId), -1)
    62  
    63  	localVarHeaderParams := make(map[string]string)
    64  	localVarQueryParams := url.Values{}
    65  	localVarFormParams := url.Values{}
    66  
    67  	if localVarOptionals != nil && localVarOptionals.UsageType.IsSet() {
    68  		localVarQueryParams.Add("usageType", parameterToString(localVarOptionals.UsageType.Value(), "multi"))
    69  	}
    70  	if localVarOptionals != nil && localVarOptionals.Page.IsSet() {
    71  		localVarQueryParams.Add("page", parameterToString(localVarOptionals.Page.Value(), ""))
    72  	}
    73  	if localVarOptionals != nil && localVarOptionals.PerPage.IsSet() {
    74  		localVarQueryParams.Add("perPage", parameterToString(localVarOptionals.PerPage.Value(), ""))
    75  	}
    76  	// to determine the Content-Type header
    77  	localVarHttpContentTypes := []string{}
    78  
    79  	// set Content-Type header
    80  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
    81  	if localVarHttpContentType != "" {
    82  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
    83  	}
    84  
    85  	// to determine the Accept header
    86  	localVarHttpHeaderAccepts := []string{"application/json"}
    87  
    88  	// set Accept header
    89  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
    90  	if localVarHttpHeaderAccept != "" {
    91  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
    92  	}
    93  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
    94  	if err != nil {
    95  		return localVarReturnValue, nil, err
    96  	}
    97  
    98  	localVarHttpResponse, err := a.client.callAPI(r)
    99  	if err != nil || localVarHttpResponse == nil {
   100  		return localVarReturnValue, localVarHttpResponse, err
   101  	}
   102  
   103  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
   104  	localVarHttpResponse.Body.Close()
   105  	if err != nil {
   106  		return localVarReturnValue, localVarHttpResponse, err
   107  	}
   108  
   109  	if localVarHttpResponse.StatusCode >= 300 {
   110  		newErr := GenericOpenAPIError{
   111  			body:  localVarBody,
   112  			error: localVarHttpResponse.Status,
   113  		}
   114  		if localVarHttpResponse.StatusCode == 0 {
   115  			var v GetExtensionPhoneNumbersResponse
   116  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   117  			if err != nil {
   118  				newErr.error = err.Error()
   119  				return localVarReturnValue, localVarHttpResponse, newErr
   120  			}
   121  			newErr.model = v
   122  			return localVarReturnValue, localVarHttpResponse, newErr
   123  		}
   124  		return localVarReturnValue, localVarHttpResponse, newErr
   125  	}
   126  
   127  	err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   128  	if err != nil {
   129  		newErr := GenericOpenAPIError{
   130  			body:  localVarBody,
   131  			error: err.Error(),
   132  		}
   133  		return localVarReturnValue, localVarHttpResponse, newErr
   134  	}
   135  
   136  	return localVarReturnValue, localVarHttpResponse, nil
   137  }