github.com/free5gc/openapi@v1.0.8/Nchf_ConvergedCharging/api_default_callback.go (about)

     1  /*
     2   * Nchf_ConvergedCharging
     3   */
     4  
     5  package Nchf_ConvergedCharging
     6  
     7  import (
     8  	"context"
     9  	"io/ioutil"
    10  	"net/http"
    11  	"net/url"
    12  	"strings"
    13  
    14  	"github.com/free5gc/openapi"
    15  	"github.com/free5gc/openapi/models"
    16  )
    17  
    18  // Linger please
    19  var (
    20  	_ context.Context
    21  )
    22  
    23  type DefaultCallbackApiService service
    24  
    25  func (a *DefaultCallbackApiService) ChargingNotification(ctx context.Context, notifyUrl string, request models.ChargingNotifyRequest) (*http.Response, error) {
    26  	var (
    27  		localVarHTTPMethod   = strings.ToUpper("Post")
    28  		localVarPostBody     interface{}
    29  		localVarFormFileName string
    30  		localVarFileName     string
    31  		localVarFileBytes    []byte
    32  	)
    33  
    34  	// create path and map variables
    35  	localVarPath := notifyUrl
    36  	localVarHeaderParams := make(map[string]string)
    37  	localVarQueryParams := url.Values{}
    38  	localVarFormParams := url.Values{}
    39  
    40  	localVarHTTPContentTypes := []string{"application/json"}
    41  	localVarHeaderParams["Content-Type"] = localVarHTTPContentTypes[0] // use the first content type specified in 'consumes'
    42  
    43  	// to determine the Accept header
    44  	localVarHTTPHeaderAccepts := []string{"application/problem+json"}
    45  
    46  	// set Accept header
    47  	localVarHTTPHeaderAccept := openapi.SelectHeaderAccept(localVarHTTPHeaderAccepts)
    48  	if localVarHTTPHeaderAccept != "" {
    49  		localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
    50  	}
    51  
    52  	// body params
    53  	localVarPostBody = &request
    54  
    55  	r, err := openapi.PrepareRequest(ctx, a.client.cfg, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
    56  	if err != nil {
    57  		return nil, err
    58  	}
    59  
    60  	localVarHTTPResponse, err := openapi.CallAPI(a.client.cfg, r)
    61  	if err != nil || localVarHTTPResponse == nil {
    62  		return localVarHTTPResponse, err
    63  	}
    64  
    65  	localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body)
    66  	localVarHTTPResponse.Body.Close()
    67  	if err != nil {
    68  		return localVarHTTPResponse, err
    69  	}
    70  
    71  	apiError := openapi.GenericOpenAPIError{
    72  		RawBody:     localVarBody,
    73  		ErrorStatus: localVarHTTPResponse.Status,
    74  	}
    75  
    76  	switch localVarHTTPResponse.StatusCode {
    77  	case 204:
    78  		return localVarHTTPResponse, nil
    79  	case 400:
    80  		var v models.ProblemDetails
    81  		err = openapi.Deserialize(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
    82  		if err != nil {
    83  			apiError.ErrorStatus = err.Error()
    84  			return localVarHTTPResponse, apiError
    85  		}
    86  		apiError.ErrorModel = v
    87  		return localVarHTTPResponse, apiError
    88  	default:
    89  		return localVarHTTPResponse, nil
    90  	}
    91  }