github.com/muxinc/mux-go@v1.1.1/api_delivery_usage.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  	"io/ioutil"
     8  	"net/url"
     9  	"strings"
    10  )
    11  
    12  type DeliveryUsageApiService service
    13  
    14  type ListDeliveryUsageParams struct {
    15  	Page      int32
    16  	Limit     int32
    17  	AssetId   string
    18  	Timeframe []string
    19  }
    20  
    21  // ListDeliveryUsage optionally accepts the APIOption of WithParams(*ListDeliveryUsageParams).
    22  func (a *DeliveryUsageApiService) ListDeliveryUsage(opts ...APIOption) (ListDeliveryUsageResponse, error) {
    23  	var (
    24  		localVarAPIOptions   = new(APIOptions)
    25  		localVarHttpMethod   = strings.ToUpper("Get")
    26  		localVarPostBody     interface{}
    27  		localVarFormFileName string
    28  		localVarFileName     string
    29  		localVarFileBytes    []byte
    30  		localVarReturnValue  ListDeliveryUsageResponse
    31  	)
    32  
    33  	for _, opt := range opts {
    34  		opt(localVarAPIOptions)
    35  	}
    36  
    37  	localVarOptionals, ok := localVarAPIOptions.params.(*ListDeliveryUsageParams)
    38  	if localVarAPIOptions.params != nil && !ok {
    39  		return localVarReturnValue, reportError("provided params were not of type *ListDeliveryUsageParams")
    40  	}
    41  
    42  	// create path and map variables
    43  	localVarPath := a.client.cfg.basePath + "/video/v1/delivery-usage"
    44  
    45  	localVarHeaderParams := make(map[string]string)
    46  	localVarQueryParams := url.Values{}
    47  	localVarFormParams := url.Values{}
    48  
    49  	if localVarOptionals != nil && isSet(localVarOptionals.Page) {
    50  		localVarQueryParams.Add("page", parameterToString(localVarOptionals.Page, ""))
    51  	}
    52  	if localVarOptionals != nil && isSet(localVarOptionals.Limit) {
    53  		localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit, ""))
    54  	}
    55  	if localVarOptionals != nil && isSet(localVarOptionals.AssetId) {
    56  		localVarQueryParams.Add("asset_id", parameterToString(localVarOptionals.AssetId, ""))
    57  	}
    58  	if localVarOptionals != nil && isSet(localVarOptionals.Timeframe) {
    59  		// This will "always work" for Mux's use case, since we always treat collections in query params as "multi" types.
    60  		// The first version of this code checked the collectionFormat, but that's just wasted CPU cycles right now.
    61  		for _, v := range localVarOptionals.Timeframe {
    62  			localVarQueryParams.Add("timeframe[]", v)
    63  		}
    64  	}
    65  	// to determine the Content-Type header
    66  	localVarHttpContentTypes := []string{}
    67  
    68  	// set Content-Type header
    69  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
    70  	if localVarHttpContentType != "" {
    71  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
    72  	}
    73  
    74  	// to determine the Accept header
    75  	localVarHttpHeaderAccepts := []string{"application/json"}
    76  
    77  	// set Accept header
    78  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
    79  	if localVarHttpHeaderAccept != "" {
    80  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
    81  	}
    82  
    83  	r, err := a.client.prepareRequest(localVarAPIOptions, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
    84  	if err != nil {
    85  		return localVarReturnValue, err
    86  	}
    87  
    88  	localVarHttpResponse, err := a.client.callAPI(r)
    89  	if err != nil || localVarHttpResponse == nil {
    90  		return localVarReturnValue, err
    91  	}
    92  
    93  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
    94  	localVarHttpResponse.Body.Close()
    95  	if err != nil {
    96  		return localVarReturnValue, err
    97  	}
    98  
    99  	// Check for common HTTP error status codes
   100  	err = CheckForHttpError(localVarHttpResponse.StatusCode, localVarBody)
   101  	if err != nil {
   102  		return localVarReturnValue, err
   103  	}
   104  
   105  	err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   106  	if err != nil {
   107  		newErr := GenericOpenAPIError{
   108  			body:  localVarBody,
   109  			error: err.Error(),
   110  		}
   111  		return localVarReturnValue, newErr
   112  	}
   113  
   114  	return localVarReturnValue, nil
   115  }