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