github.com/launchdarkly/api-client-go@v5.3.0+incompatible/api_root.go (about)

     1  
     2  /*
     3   * LaunchDarkly REST API
     4   *
     5   * Build custom integrations with the LaunchDarkly REST API
     6   *
     7   * API version: 5.3.0
     8   * Contact: support@launchdarkly.com
     9   * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
    10   */
    11  
    12  package ldapi
    13  
    14  import (
    15  	"context"
    16  	"io/ioutil"
    17  	"net/http"
    18  	"net/url"
    19  	"strings"
    20  )
    21  
    22  // Linger please
    23  var (
    24  	_ context.Context
    25  )
    26  
    27  type RootApiService service
    28  
    29  /*
    30  RootApiService
    31  You can issue a GET request to the root resource to find all of the resource categories supported by the API.
    32   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
    33  
    34  @return Links
    35  */
    36  func (a *RootApiService) GetRoot(ctx context.Context) (Links, *http.Response, error) {
    37  	var (
    38  		localVarHttpMethod = strings.ToUpper("Get")
    39  		localVarPostBody   interface{}
    40  		localVarFileName   string
    41  		localVarFileBytes  []byte
    42  		localVarReturnValue Links
    43  	)
    44  
    45  	// create path and map variables
    46  	localVarPath := a.client.cfg.BasePath + "/"
    47  
    48  	localVarHeaderParams := make(map[string]string)
    49  	localVarQueryParams := url.Values{}
    50  	localVarFormParams := url.Values{}
    51  
    52  	// to determine the Content-Type header
    53  	localVarHttpContentTypes := []string{"application/json"}
    54  
    55  	// set Content-Type header
    56  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
    57  	if localVarHttpContentType != "" {
    58  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
    59  	}
    60  
    61  	// to determine the Accept header
    62  	localVarHttpHeaderAccepts := []string{"application/json"}
    63  
    64  	// set Accept header
    65  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
    66  	if localVarHttpHeaderAccept != "" {
    67  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
    68  	}
    69  	if ctx != nil {
    70  		// API Key Authentication
    71  		if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok {
    72  			var key string
    73  			if auth.Prefix != "" {
    74  				key = auth.Prefix + " " + auth.Key
    75  			} else {
    76  				key = auth.Key
    77  			}
    78  			localVarHeaderParams["Authorization"] = key
    79  			
    80  		}
    81  	}
    82  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, 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  		// If we succeed, return the data, otherwise pass on to decode error.
   100  		err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
   101  		return localVarReturnValue, localVarHttpResponse, err
   102  	}
   103  
   104  	if localVarHttpResponse.StatusCode >= 300 {
   105  		newErr := GenericSwaggerError{
   106  			body: localVarBody,
   107  			error: localVarHttpResponse.Status,
   108  		}
   109  		
   110  		if localVarHttpResponse.StatusCode == 200 {
   111  			var v Links
   112  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
   113  				if err != nil {
   114  					newErr.error = err.Error()
   115  					return localVarReturnValue, localVarHttpResponse, newErr
   116  				}
   117  				newErr.model = v
   118  				return localVarReturnValue, localVarHttpResponse, newErr
   119  		}
   120  		
   121  		return localVarReturnValue, localVarHttpResponse, newErr
   122  	}
   123  
   124  	return localVarReturnValue, localVarHttpResponse, nil
   125  }
   126