github.com/muxinc/mux-go@v1.1.1/api_dimensions.go (about)

     1  // Mux Go - Copyright 2019 Mux Inc.
     2  // NOTE: This file is auto generated. Do not edit this file manually.
     3  
     4  package muxgo
     5  
     6  import (
     7  	"fmt"
     8  	"io/ioutil"
     9  	"net/url"
    10  	"strings"
    11  )
    12  
    13  type DimensionsApiService service
    14  
    15  type ListDimensionValuesParams struct {
    16  	Limit     int32
    17  	Page      int32
    18  	Filters   []string
    19  	Timeframe []string
    20  }
    21  
    22  // ListDimensionValues optionally accepts the APIOption of WithParams(*ListDimensionValuesParams).
    23  func (a *DimensionsApiService) ListDimensionValues(dIMENSIONID string, opts ...APIOption) (ListDimensionValuesResponse, error) {
    24  	var (
    25  		localVarAPIOptions   = new(APIOptions)
    26  		localVarHttpMethod   = strings.ToUpper("Get")
    27  		localVarPostBody     interface{}
    28  		localVarFormFileName string
    29  		localVarFileName     string
    30  		localVarFileBytes    []byte
    31  		localVarReturnValue  ListDimensionValuesResponse
    32  	)
    33  
    34  	for _, opt := range opts {
    35  		opt(localVarAPIOptions)
    36  	}
    37  
    38  	localVarOptionals, ok := localVarAPIOptions.params.(*ListDimensionValuesParams)
    39  	if localVarAPIOptions.params != nil && !ok {
    40  		return localVarReturnValue, reportError("provided params were not of type *ListDimensionValuesParams")
    41  	}
    42  
    43  	// create path and map variables
    44  	localVarPath := a.client.cfg.basePath + "/data/v1/dimensions/{DIMENSION_ID}"
    45  	localVarPath = strings.Replace(localVarPath, "{"+"DIMENSION_ID"+"}", fmt.Sprintf("%v", dIMENSIONID), -1)
    46  
    47  	localVarHeaderParams := make(map[string]string)
    48  	localVarQueryParams := url.Values{}
    49  	localVarFormParams := url.Values{}
    50  
    51  	if localVarOptionals != nil && isSet(localVarOptionals.Limit) {
    52  		localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit, ""))
    53  	}
    54  	if localVarOptionals != nil && isSet(localVarOptionals.Page) {
    55  		localVarQueryParams.Add("page", parameterToString(localVarOptionals.Page, ""))
    56  	}
    57  	if localVarOptionals != nil && isSet(localVarOptionals.Filters) {
    58  		// This will "always work" for Mux's use case, since we always treat collections in query params as "multi" types.
    59  		// The first version of this code checked the collectionFormat, but that's just wasted CPU cycles right now.
    60  		for _, v := range localVarOptionals.Filters {
    61  			localVarQueryParams.Add("filters[]", v)
    62  		}
    63  	}
    64  	if localVarOptionals != nil && isSet(localVarOptionals.Timeframe) {
    65  		// This will "always work" for Mux's use case, since we always treat collections in query params as "multi" types.
    66  		// The first version of this code checked the collectionFormat, but that's just wasted CPU cycles right now.
    67  		for _, v := range localVarOptionals.Timeframe {
    68  			localVarQueryParams.Add("timeframe[]", v)
    69  		}
    70  	}
    71  	// to determine the Content-Type header
    72  	localVarHttpContentTypes := []string{}
    73  
    74  	// set Content-Type header
    75  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
    76  	if localVarHttpContentType != "" {
    77  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
    78  	}
    79  
    80  	// to determine the Accept header
    81  	localVarHttpHeaderAccepts := []string{"application/json"}
    82  
    83  	// set Accept header
    84  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
    85  	if localVarHttpHeaderAccept != "" {
    86  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
    87  	}
    88  
    89  	r, err := a.client.prepareRequest(localVarAPIOptions, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
    90  	if err != nil {
    91  		return localVarReturnValue, err
    92  	}
    93  
    94  	localVarHttpResponse, err := a.client.callAPI(r)
    95  	if err != nil || localVarHttpResponse == nil {
    96  		return localVarReturnValue, err
    97  	}
    98  
    99  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
   100  	localVarHttpResponse.Body.Close()
   101  	if err != nil {
   102  		return localVarReturnValue, err
   103  	}
   104  
   105  	// Check for common HTTP error status codes
   106  	err = CheckForHttpError(localVarHttpResponse.StatusCode, localVarBody)
   107  	if err != nil {
   108  		return localVarReturnValue, err
   109  	}
   110  
   111  	err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   112  	if err != nil {
   113  		newErr := GenericOpenAPIError{
   114  			body:  localVarBody,
   115  			error: err.Error(),
   116  		}
   117  		return localVarReturnValue, newErr
   118  	}
   119  
   120  	return localVarReturnValue, nil
   121  }
   122  
   123  func (a *DimensionsApiService) ListDimensions(opts ...APIOption) (ListDimensionsResponse, error) {
   124  	var (
   125  		localVarAPIOptions   = new(APIOptions)
   126  		localVarHttpMethod   = strings.ToUpper("Get")
   127  		localVarPostBody     interface{}
   128  		localVarFormFileName string
   129  		localVarFileName     string
   130  		localVarFileBytes    []byte
   131  		localVarReturnValue  ListDimensionsResponse
   132  	)
   133  
   134  	for _, opt := range opts {
   135  		opt(localVarAPIOptions)
   136  	}
   137  
   138  	// create path and map variables
   139  	localVarPath := a.client.cfg.basePath + "/data/v1/dimensions"
   140  
   141  	localVarHeaderParams := make(map[string]string)
   142  	localVarQueryParams := url.Values{}
   143  	localVarFormParams := url.Values{}
   144  
   145  	// to determine the Content-Type header
   146  	localVarHttpContentTypes := []string{}
   147  
   148  	// set Content-Type header
   149  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   150  	if localVarHttpContentType != "" {
   151  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   152  	}
   153  
   154  	// to determine the Accept header
   155  	localVarHttpHeaderAccepts := []string{"application/json"}
   156  
   157  	// set Accept header
   158  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   159  	if localVarHttpHeaderAccept != "" {
   160  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   161  	}
   162  
   163  	r, err := a.client.prepareRequest(localVarAPIOptions, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
   164  	if err != nil {
   165  		return localVarReturnValue, err
   166  	}
   167  
   168  	localVarHttpResponse, err := a.client.callAPI(r)
   169  	if err != nil || localVarHttpResponse == nil {
   170  		return localVarReturnValue, err
   171  	}
   172  
   173  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
   174  	localVarHttpResponse.Body.Close()
   175  	if err != nil {
   176  		return localVarReturnValue, err
   177  	}
   178  
   179  	// Check for common HTTP error status codes
   180  	err = CheckForHttpError(localVarHttpResponse.StatusCode, localVarBody)
   181  	if err != nil {
   182  		return localVarReturnValue, err
   183  	}
   184  
   185  	err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   186  	if err != nil {
   187  		newErr := GenericOpenAPIError{
   188  			body:  localVarBody,
   189  			error: err.Error(),
   190  		}
   191  		return localVarReturnValue, newErr
   192  	}
   193  
   194  	return localVarReturnValue, nil
   195  }