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 }