github.com/grokify/go-ringcentral-client@v0.3.31/engagevoice/v1/client/api_countries.go (about)

     1  /*
     2   * RingCentral Engage Voice API
     3   *
     4   * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
     5   *
     6   * API version: 1.0
     7   * Generated by: OpenAPI Generator (https://openapi-generator.tech)
     8   */
     9  
    10  package engagevoice
    11  
    12  import (
    13  	"context"
    14  	"fmt"
    15  	"io/ioutil"
    16  	"net/http"
    17  	"net/url"
    18  	"strings"
    19  )
    20  
    21  // Linger please
    22  var (
    23  	_ context.Context
    24  )
    25  
    26  type CountriesApiService service
    27  
    28  /*
    29  CountriesApiService Get Available Countries
    30  Get a list of available countries
    31   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
    32   * @param accountId
    33  @return []Country
    34  */
    35  func (a *CountriesApiService) GetAvailableCountries(ctx context.Context, accountId string) ([]Country, *http.Response, error) {
    36  	var (
    37  		localVarHttpMethod   = http.MethodGet
    38  		localVarPostBody     interface{}
    39  		localVarFormFileName string
    40  		localVarFileName     string
    41  		localVarFileBytes    []byte
    42  		localVarReturnValue  []Country
    43  	)
    44  
    45  	// create path and map variables
    46  	localVarPath := a.client.cfg.BasePath + "/admin/accounts/{accountId}/countries/available"
    47  	localVarPath = strings.Replace(localVarPath, "{"+"accountId"+"}", fmt.Sprintf("%v", accountId), -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{"application/json"}
    64  
    65  	// set Accept header
    66  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
    67  	if localVarHttpHeaderAccept != "" {
    68  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
    69  	}
    70  	if ctx != nil {
    71  		// API Key Authentication
    72  		if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok {
    73  			var key string
    74  			if auth.Prefix != "" {
    75  				key = auth.Prefix + " " + auth.Key
    76  			} else {
    77  				key = auth.Key
    78  			}
    79  			localVarHeaderParams["X-Auth-Token"] = key
    80  		}
    81  	}
    82  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
    83  	if err != nil {
    84  		return localVarReturnValue, nil, err
    85  	}
    86  
    87  	localVarHttpResponse, err := a.client.callAPI(r)
    88  	if err != nil || localVarHttpResponse == nil {
    89  		return localVarReturnValue, localVarHttpResponse, err
    90  	}
    91  
    92  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
    93  	localVarHttpResponse.Body.Close()
    94  	if err != nil {
    95  		return localVarReturnValue, localVarHttpResponse, err
    96  	}
    97  
    98  	if localVarHttpResponse.StatusCode >= 300 {
    99  		newErr := GenericOpenAPIError{
   100  			body:  localVarBody,
   101  			error: localVarHttpResponse.Status,
   102  		}
   103  		if localVarHttpResponse.StatusCode == 200 {
   104  			var v []Country
   105  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   106  			if err != nil {
   107  				newErr.error = err.Error()
   108  				return localVarReturnValue, localVarHttpResponse, newErr
   109  			}
   110  			newErr.model = v
   111  			return localVarReturnValue, localVarHttpResponse, newErr
   112  		}
   113  		return localVarReturnValue, localVarHttpResponse, newErr
   114  	}
   115  
   116  	err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   117  	if err != nil {
   118  		newErr := GenericOpenAPIError{
   119  			body:  localVarBody,
   120  			error: err.Error(),
   121  		}
   122  		return localVarReturnValue, localVarHttpResponse, newErr
   123  	}
   124  
   125  	return localVarReturnValue, localVarHttpResponse, nil
   126  }