github.com/free5gc/openapi@v1.0.8/Nnrf_AccessToken/api_access_token_request.go (about)

     1  /*
     2   * NRF OAuth2
     3   *
     4   * NRF OAuth2 Authorization
     5   *
     6   * API version: 1.0.0
     7   * Generated by: OpenAPI Generator (https://openapi-generator.tech)
     8   */
     9  
    10  package Nnrf_AccessToken
    11  
    12  import (
    13  	"context"
    14  	"io/ioutil"
    15  	"net/http"
    16  	"net/url"
    17  	"strings"
    18  
    19  	"github.com/antihax/optional"
    20  
    21  	"github.com/free5gc/openapi"
    22  	"github.com/free5gc/openapi/models"
    23  )
    24  
    25  // Linger please
    26  var (
    27  	_ context.Context
    28  )
    29  
    30  type AccessTokenRequestApiService service
    31  
    32  /*
    33  AccessTokenRequestApiService Access Token Request
    34   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
    35   * @param grantType
    36   * @param nfInstanceId
    37   * @param scope
    38   * @param optional nil or *AccessTokenRequestParamOpts - Optional Parameters:
    39   * @param "NfType" (optional.Interface of models.NfType) -
    40   * @param "TargetNfType" (optional.Interface of models.NfType) -
    41   * @param "TargetNfInstanceId" (optional.Interface of string) -
    42   * @param "RequesterPlmn" (optional.Interface of models.PlmnId) -
    43   * @param "TargetPlmn" (optional.Interface of models.PlmnId) -
    44  @return models.AccessTokenRsp
    45  */
    46  
    47  type AccessTokenRequestParamOpts struct {
    48  	NfType             optional.Interface
    49  	TargetNfType       optional.Interface
    50  	TargetNfInstanceId optional.Interface
    51  	RequesterPlmn      optional.Interface
    52  	TargetPlmn         optional.Interface
    53  }
    54  
    55  func (a *AccessTokenRequestApiService) AccessTokenRequest(ctx context.Context, grantType string, nfInstanceId string, scope string, localVarOptionals *AccessTokenRequestParamOpts) (models.AccessTokenRsp, *http.Response, error) {
    56  	var (
    57  		localVarHTTPMethod   = strings.ToUpper("Post")
    58  		localVarPostBody     interface{}
    59  		localVarFormFileName string
    60  		localVarFileName     string
    61  		localVarFileBytes    []byte
    62  		localVarReturnValue  models.AccessTokenRsp
    63  	)
    64  
    65  	// create path and map variables
    66  	localVarPath := a.client.cfg.BasePath() + "/oauth2/token"
    67  
    68  	localVarHeaderParams := make(map[string]string)
    69  	localVarQueryParams := url.Values{}
    70  	localVarFormParams := url.Values{}
    71  
    72  	localVarHTTPContentTypes := []string{"application/x-www-form-urlencoded"}
    73  
    74  	localVarHeaderParams["Content-Type"] = localVarHTTPContentTypes[0] // use the first content type specified in 'consumes'
    75  
    76  	// to determine the Accept header
    77  	localVarHTTPHeaderAccepts := []string{"application/json"}
    78  
    79  	// set Accept header
    80  	localVarHTTPHeaderAccept := openapi.SelectHeaderAccept(localVarHTTPHeaderAccepts)
    81  	if localVarHTTPHeaderAccept != "" {
    82  		localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
    83  	}
    84  
    85  	localVarFormParams.Add("grant_type", openapi.ParameterToString(grantType, ""))
    86  	localVarFormParams.Add("nfInstanceId", openapi.ParameterToString(nfInstanceId, ""))
    87  	if localVarOptionals != nil && localVarOptionals.NfType.IsSet() {
    88  		localVarFormParams.Add("nfType", openapi.ParameterToString(localVarOptionals.NfType.Value(), ""))
    89  	}
    90  	if localVarOptionals != nil && localVarOptionals.TargetNfType.IsSet() {
    91  		localVarFormParams.Add("targetNfType", openapi.ParameterToString(localVarOptionals.TargetNfType.Value(), ""))
    92  	}
    93  	localVarFormParams.Add("scope", openapi.ParameterToString(scope, ""))
    94  	if localVarOptionals != nil && localVarOptionals.TargetNfInstanceId.IsSet() {
    95  		localVarFormParams.Add("targetNfInstanceId", openapi.ParameterToString(localVarOptionals.TargetNfInstanceId.Value(), ""))
    96  	}
    97  	if localVarOptionals != nil && localVarOptionals.RequesterPlmn.IsSet() {
    98  		localVarFormParams.Add("requesterPlmn", openapi.ParameterToString(localVarOptionals.RequesterPlmn.Value(), ""))
    99  	}
   100  	if localVarOptionals != nil && localVarOptionals.TargetPlmn.IsSet() {
   101  		localVarFormParams.Add("targetPlmn", openapi.ParameterToString(localVarOptionals.TargetPlmn.Value(), ""))
   102  	}
   103  
   104  	r, err := openapi.PrepareRequest(ctx, a.client.cfg, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
   105  	if err != nil {
   106  		return localVarReturnValue, nil, err
   107  	}
   108  
   109  	localVarHTTPResponse, err := openapi.CallAPI(a.client.cfg, r)
   110  	if err != nil || localVarHTTPResponse == nil {
   111  		return localVarReturnValue, localVarHTTPResponse, err
   112  	}
   113  
   114  	localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body)
   115  	localVarHTTPResponse.Body.Close()
   116  	if err != nil {
   117  		return localVarReturnValue, localVarHTTPResponse, err
   118  	}
   119  
   120  	apiError := openapi.GenericOpenAPIError{
   121  		RawBody:     localVarBody,
   122  		ErrorStatus: localVarHTTPResponse.Status,
   123  	}
   124  
   125  	switch localVarHTTPResponse.StatusCode {
   126  	case 200:
   127  		err = openapi.Deserialize(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
   128  		if err != nil {
   129  			apiError.ErrorStatus = err.Error()
   130  		}
   131  		return localVarReturnValue, localVarHTTPResponse, nil
   132  	case 400:
   133  		var v models.AccessTokenErr
   134  		err = openapi.Deserialize(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
   135  		if err != nil {
   136  			apiError.ErrorStatus = err.Error()
   137  			return localVarReturnValue, localVarHTTPResponse, apiError
   138  		}
   139  		apiError.ErrorModel = v
   140  		return localVarReturnValue, localVarHTTPResponse, apiError
   141  	default:
   142  		return localVarReturnValue, localVarHTTPResponse, openapi.ReportError("%d is not a valid status code in AccessTokenRequest", localVarHTTPResponse.StatusCode)
   143  	}
   144  }