github.com/grokify/go-ringcentral-client@v0.3.31/engagedigital/v1/client/api_categories.go (about)

     1  /*
     2   * Engage Digital API
     3   *
     4   * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
     5   *
     6   * API version: 1.0
     7   * Generated by: OpenAPI Generator (https://openapi-generator.tech)
     8   */
     9  
    10  package engagedigital
    11  
    12  import (
    13  	"context"
    14  	"fmt"
    15  	"github.com/antihax/optional"
    16  	"io/ioutil"
    17  	"net/http"
    18  	"net/url"
    19  	"reflect"
    20  	"strings"
    21  )
    22  
    23  // Linger please
    24  var (
    25  	_ context.Context
    26  )
    27  
    28  type CategoriesApiService service
    29  
    30  /*
    31  CategoriesApiService Creating a category
    32  This method creates a new team. In case of success it renders the created tag, otherwise, it renders an error (422 HTTP code).  Note: The fields ​`mandatory`,​ `​multiple`,​ ​`post_qualification​`, `s​ource_ids`​ and `u​nselectable​` are accounted for only if the Category has no parent.  Authorization​: only users that can manage teams.
    33   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
    34   * @param optional nil or *CreateCategoryOpts - Optional Parameters:
    35   * @param "Name" (optional.String) -  Category name.
    36   * @param "ParentId" (optional.String) -  ID of parent category.
    37   * @param "Color" (optional.Int32) -  displayed color for the category, see Category colors.
    38   * @param "Mandatory" (optional.Bool) -  mandatory categorization (Boolean).
    39   * @param "Multiple" (optional.Bool) -  allow to assign multiple child categories (Boolean).
    40   * @param "PostQualification" (optional.Bool) -  post qualification (Boolean).
    41   * @param "Unselectable" (optional.Bool) -  root category is unselectable (Boolean).
    42   * @param "SourceIds" (optional.Interface of []string) -  List of source id.
    43  @return Category
    44  */
    45  
    46  type CreateCategoryOpts struct {
    47  	Name              optional.String
    48  	ParentId          optional.String
    49  	Color             optional.Int32
    50  	Mandatory         optional.Bool
    51  	Multiple          optional.Bool
    52  	PostQualification optional.Bool
    53  	Unselectable      optional.Bool
    54  	SourceIds         optional.Interface
    55  }
    56  
    57  func (a *CategoriesApiService) CreateCategory(ctx context.Context, localVarOptionals *CreateCategoryOpts) (Category, *http.Response, error) {
    58  	var (
    59  		localVarHttpMethod   = http.MethodPost
    60  		localVarPostBody     interface{}
    61  		localVarFormFileName string
    62  		localVarFileName     string
    63  		localVarFileBytes    []byte
    64  		localVarReturnValue  Category
    65  	)
    66  
    67  	// create path and map variables
    68  	localVarPath := a.client.cfg.BasePath + "/categories"
    69  
    70  	localVarHeaderParams := make(map[string]string)
    71  	localVarQueryParams := url.Values{}
    72  	localVarFormParams := url.Values{}
    73  
    74  	if localVarOptionals != nil && localVarOptionals.Name.IsSet() {
    75  		localVarQueryParams.Add("name", parameterToString(localVarOptionals.Name.Value(), ""))
    76  	}
    77  	if localVarOptionals != nil && localVarOptionals.ParentId.IsSet() {
    78  		localVarQueryParams.Add("parent_id", parameterToString(localVarOptionals.ParentId.Value(), ""))
    79  	}
    80  	if localVarOptionals != nil && localVarOptionals.Color.IsSet() {
    81  		localVarQueryParams.Add("color", parameterToString(localVarOptionals.Color.Value(), ""))
    82  	}
    83  	if localVarOptionals != nil && localVarOptionals.Mandatory.IsSet() {
    84  		localVarQueryParams.Add("mandatory", parameterToString(localVarOptionals.Mandatory.Value(), ""))
    85  	}
    86  	if localVarOptionals != nil && localVarOptionals.Multiple.IsSet() {
    87  		localVarQueryParams.Add("multiple", parameterToString(localVarOptionals.Multiple.Value(), ""))
    88  	}
    89  	if localVarOptionals != nil && localVarOptionals.PostQualification.IsSet() {
    90  		localVarQueryParams.Add("post_qualification", parameterToString(localVarOptionals.PostQualification.Value(), ""))
    91  	}
    92  	if localVarOptionals != nil && localVarOptionals.Unselectable.IsSet() {
    93  		localVarQueryParams.Add("unselectable", parameterToString(localVarOptionals.Unselectable.Value(), ""))
    94  	}
    95  	if localVarOptionals != nil && localVarOptionals.SourceIds.IsSet() {
    96  		t := localVarOptionals.SourceIds.Value()
    97  		if reflect.TypeOf(t).Kind() == reflect.Slice {
    98  			s := reflect.ValueOf(t)
    99  			for i := 0; i < s.Len(); i++ {
   100  				localVarQueryParams.Add("source_ids[]", parameterToString(s.Index(i), "multi"))
   101  			}
   102  		} else {
   103  			localVarQueryParams.Add("source_ids[]", parameterToString(t, "multi"))
   104  		}
   105  	}
   106  	// to determine the Content-Type header
   107  	localVarHttpContentTypes := []string{}
   108  
   109  	// set Content-Type header
   110  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   111  	if localVarHttpContentType != "" {
   112  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   113  	}
   114  
   115  	// to determine the Accept header
   116  	localVarHttpHeaderAccepts := []string{"application/json"}
   117  
   118  	// set Accept header
   119  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   120  	if localVarHttpHeaderAccept != "" {
   121  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   122  	}
   123  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
   124  	if err != nil {
   125  		return localVarReturnValue, nil, err
   126  	}
   127  
   128  	localVarHttpResponse, err := a.client.callAPI(r)
   129  	if err != nil || localVarHttpResponse == nil {
   130  		return localVarReturnValue, localVarHttpResponse, err
   131  	}
   132  
   133  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
   134  	localVarHttpResponse.Body.Close()
   135  	if err != nil {
   136  		return localVarReturnValue, localVarHttpResponse, err
   137  	}
   138  
   139  	if localVarHttpResponse.StatusCode >= 300 {
   140  		newErr := GenericOpenAPIError{
   141  			body:  localVarBody,
   142  			error: localVarHttpResponse.Status,
   143  		}
   144  		if localVarHttpResponse.StatusCode == 200 {
   145  			var v Category
   146  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   147  			if err != nil {
   148  				newErr.error = err.Error()
   149  				return localVarReturnValue, localVarHttpResponse, newErr
   150  			}
   151  			newErr.model = v
   152  			return localVarReturnValue, localVarHttpResponse, newErr
   153  		}
   154  		return localVarReturnValue, localVarHttpResponse, newErr
   155  	}
   156  
   157  	err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   158  	if err != nil {
   159  		newErr := GenericOpenAPIError{
   160  			body:  localVarBody,
   161  			error: err.Error(),
   162  		}
   163  		return localVarReturnValue, localVarHttpResponse, newErr
   164  	}
   165  
   166  	return localVarReturnValue, localVarHttpResponse, nil
   167  }
   168  
   169  /*
   170  CategoriesApiService Deleting a category
   171  This method destroys an existing category. It renders the category itself. It renders a 404 if id is invalid.
   172   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
   173   * @param categoryId
   174   * @param optional nil or *DeleteCategoryOpts - Optional Parameters:
   175   * @param "TakeOverCategoryId" (optional.String) -  ID of a category to recategorize (optional).
   176  @return Category
   177  */
   178  
   179  type DeleteCategoryOpts struct {
   180  	TakeOverCategoryId optional.String
   181  }
   182  
   183  func (a *CategoriesApiService) DeleteCategory(ctx context.Context, categoryId string, localVarOptionals *DeleteCategoryOpts) (Category, *http.Response, error) {
   184  	var (
   185  		localVarHttpMethod   = http.MethodDelete
   186  		localVarPostBody     interface{}
   187  		localVarFormFileName string
   188  		localVarFileName     string
   189  		localVarFileBytes    []byte
   190  		localVarReturnValue  Category
   191  	)
   192  
   193  	// create path and map variables
   194  	localVarPath := a.client.cfg.BasePath + "/categories/{categoryId}"
   195  	localVarPath = strings.Replace(localVarPath, "{"+"categoryId"+"}", fmt.Sprintf("%v", categoryId), -1)
   196  
   197  	localVarHeaderParams := make(map[string]string)
   198  	localVarQueryParams := url.Values{}
   199  	localVarFormParams := url.Values{}
   200  
   201  	if localVarOptionals != nil && localVarOptionals.TakeOverCategoryId.IsSet() {
   202  		localVarQueryParams.Add("take_over_category_id", parameterToString(localVarOptionals.TakeOverCategoryId.Value(), ""))
   203  	}
   204  	// to determine the Content-Type header
   205  	localVarHttpContentTypes := []string{}
   206  
   207  	// set Content-Type header
   208  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   209  	if localVarHttpContentType != "" {
   210  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   211  	}
   212  
   213  	// to determine the Accept header
   214  	localVarHttpHeaderAccepts := []string{"application/json"}
   215  
   216  	// set Accept header
   217  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   218  	if localVarHttpHeaderAccept != "" {
   219  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   220  	}
   221  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
   222  	if err != nil {
   223  		return localVarReturnValue, nil, err
   224  	}
   225  
   226  	localVarHttpResponse, err := a.client.callAPI(r)
   227  	if err != nil || localVarHttpResponse == nil {
   228  		return localVarReturnValue, localVarHttpResponse, err
   229  	}
   230  
   231  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
   232  	localVarHttpResponse.Body.Close()
   233  	if err != nil {
   234  		return localVarReturnValue, localVarHttpResponse, err
   235  	}
   236  
   237  	if localVarHttpResponse.StatusCode >= 300 {
   238  		newErr := GenericOpenAPIError{
   239  			body:  localVarBody,
   240  			error: localVarHttpResponse.Status,
   241  		}
   242  		if localVarHttpResponse.StatusCode == 200 {
   243  			var v Category
   244  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   245  			if err != nil {
   246  				newErr.error = err.Error()
   247  				return localVarReturnValue, localVarHttpResponse, newErr
   248  			}
   249  			newErr.model = v
   250  			return localVarReturnValue, localVarHttpResponse, newErr
   251  		}
   252  		return localVarReturnValue, localVarHttpResponse, newErr
   253  	}
   254  
   255  	err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   256  	if err != nil {
   257  		newErr := GenericOpenAPIError{
   258  			body:  localVarBody,
   259  			error: err.Error(),
   260  		}
   261  		return localVarReturnValue, localVarHttpResponse, newErr
   262  	}
   263  
   264  	return localVarReturnValue, localVarHttpResponse, nil
   265  }
   266  
   267  /*
   268  CategoriesApiService Getting all categories
   269  This method renders categories ordered by creation date (ascending).
   270   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
   271   * @param optional nil or *GetAllCategoriesOpts - Optional Parameters:
   272   * @param "ParentId" (optional.String) -  To filter categories on given category parent id.
   273   * @param "Offset" (optional.Int32) -  The record index to start. Default value is 0.
   274   * @param "Limit" (optional.Int32) -  The max number of records to return. Default value is 30, max value is 150.
   275  @return GetAllCategoriesResponse
   276  */
   277  
   278  type GetAllCategoriesOpts struct {
   279  	ParentId optional.String
   280  	Offset   optional.Int32
   281  	Limit    optional.Int32
   282  }
   283  
   284  func (a *CategoriesApiService) GetAllCategories(ctx context.Context, localVarOptionals *GetAllCategoriesOpts) (GetAllCategoriesResponse, *http.Response, error) {
   285  	var (
   286  		localVarHttpMethod   = http.MethodGet
   287  		localVarPostBody     interface{}
   288  		localVarFormFileName string
   289  		localVarFileName     string
   290  		localVarFileBytes    []byte
   291  		localVarReturnValue  GetAllCategoriesResponse
   292  	)
   293  
   294  	// create path and map variables
   295  	localVarPath := a.client.cfg.BasePath + "/categories"
   296  
   297  	localVarHeaderParams := make(map[string]string)
   298  	localVarQueryParams := url.Values{}
   299  	localVarFormParams := url.Values{}
   300  
   301  	if localVarOptionals != nil && localVarOptionals.ParentId.IsSet() {
   302  		localVarQueryParams.Add("parent_id", parameterToString(localVarOptionals.ParentId.Value(), ""))
   303  	}
   304  	if localVarOptionals != nil && localVarOptionals.Offset.IsSet() {
   305  		localVarQueryParams.Add("offset", parameterToString(localVarOptionals.Offset.Value(), ""))
   306  	}
   307  	if localVarOptionals != nil && localVarOptionals.Limit.IsSet() {
   308  		localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), ""))
   309  	}
   310  	// to determine the Content-Type header
   311  	localVarHttpContentTypes := []string{}
   312  
   313  	// set Content-Type header
   314  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   315  	if localVarHttpContentType != "" {
   316  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   317  	}
   318  
   319  	// to determine the Accept header
   320  	localVarHttpHeaderAccepts := []string{"application/json"}
   321  
   322  	// set Accept header
   323  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   324  	if localVarHttpHeaderAccept != "" {
   325  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   326  	}
   327  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
   328  	if err != nil {
   329  		return localVarReturnValue, nil, err
   330  	}
   331  
   332  	localVarHttpResponse, err := a.client.callAPI(r)
   333  	if err != nil || localVarHttpResponse == nil {
   334  		return localVarReturnValue, localVarHttpResponse, err
   335  	}
   336  
   337  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
   338  	localVarHttpResponse.Body.Close()
   339  	if err != nil {
   340  		return localVarReturnValue, localVarHttpResponse, err
   341  	}
   342  
   343  	if localVarHttpResponse.StatusCode >= 300 {
   344  		newErr := GenericOpenAPIError{
   345  			body:  localVarBody,
   346  			error: localVarHttpResponse.Status,
   347  		}
   348  		if localVarHttpResponse.StatusCode == 200 {
   349  			var v GetAllCategoriesResponse
   350  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   351  			if err != nil {
   352  				newErr.error = err.Error()
   353  				return localVarReturnValue, localVarHttpResponse, newErr
   354  			}
   355  			newErr.model = v
   356  			return localVarReturnValue, localVarHttpResponse, newErr
   357  		}
   358  		return localVarReturnValue, localVarHttpResponse, newErr
   359  	}
   360  
   361  	err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   362  	if err != nil {
   363  		newErr := GenericOpenAPIError{
   364  			body:  localVarBody,
   365  			error: err.Error(),
   366  		}
   367  		return localVarReturnValue, localVarHttpResponse, newErr
   368  	}
   369  
   370  	return localVarReturnValue, localVarHttpResponse, nil
   371  }
   372  
   373  /*
   374  CategoriesApiService Getting a category from its id
   375  This method renders a category from given id.
   376   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
   377   * @param categoryId
   378  @return Category
   379  */
   380  func (a *CategoriesApiService) GetCategory(ctx context.Context, categoryId string) (Category, *http.Response, error) {
   381  	var (
   382  		localVarHttpMethod   = http.MethodGet
   383  		localVarPostBody     interface{}
   384  		localVarFormFileName string
   385  		localVarFileName     string
   386  		localVarFileBytes    []byte
   387  		localVarReturnValue  Category
   388  	)
   389  
   390  	// create path and map variables
   391  	localVarPath := a.client.cfg.BasePath + "/categories/{categoryId}"
   392  	localVarPath = strings.Replace(localVarPath, "{"+"categoryId"+"}", fmt.Sprintf("%v", categoryId), -1)
   393  
   394  	localVarHeaderParams := make(map[string]string)
   395  	localVarQueryParams := url.Values{}
   396  	localVarFormParams := url.Values{}
   397  
   398  	// to determine the Content-Type header
   399  	localVarHttpContentTypes := []string{}
   400  
   401  	// set Content-Type header
   402  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   403  	if localVarHttpContentType != "" {
   404  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   405  	}
   406  
   407  	// to determine the Accept header
   408  	localVarHttpHeaderAccepts := []string{"application/json"}
   409  
   410  	// set Accept header
   411  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   412  	if localVarHttpHeaderAccept != "" {
   413  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   414  	}
   415  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
   416  	if err != nil {
   417  		return localVarReturnValue, nil, err
   418  	}
   419  
   420  	localVarHttpResponse, err := a.client.callAPI(r)
   421  	if err != nil || localVarHttpResponse == nil {
   422  		return localVarReturnValue, localVarHttpResponse, err
   423  	}
   424  
   425  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
   426  	localVarHttpResponse.Body.Close()
   427  	if err != nil {
   428  		return localVarReturnValue, localVarHttpResponse, err
   429  	}
   430  
   431  	if localVarHttpResponse.StatusCode >= 300 {
   432  		newErr := GenericOpenAPIError{
   433  			body:  localVarBody,
   434  			error: localVarHttpResponse.Status,
   435  		}
   436  		if localVarHttpResponse.StatusCode == 200 {
   437  			var v Category
   438  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   439  			if err != nil {
   440  				newErr.error = err.Error()
   441  				return localVarReturnValue, localVarHttpResponse, newErr
   442  			}
   443  			newErr.model = v
   444  			return localVarReturnValue, localVarHttpResponse, newErr
   445  		}
   446  		return localVarReturnValue, localVarHttpResponse, newErr
   447  	}
   448  
   449  	err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   450  	if err != nil {
   451  		newErr := GenericOpenAPIError{
   452  			body:  localVarBody,
   453  			error: err.Error(),
   454  		}
   455  		return localVarReturnValue, localVarHttpResponse, newErr
   456  	}
   457  
   458  	return localVarReturnValue, localVarHttpResponse, nil
   459  }
   460  
   461  /*
   462  CategoriesApiService Updating a category
   463  This method creates a new team. In case of success it renders the created tag, otherwise, it renders an error (422 HTTP code).  Note: The fields ​&#x60;mandatory&#x60;,​ ​&#x60;multiple&#x60;,​ ​&#x60;post_qualification​&#x60;, &#x60;s​ource_ids​&#x60; and &#x60;u​nselectable​&#x60; are accounted for only if the Category has no parent.  Authorization​: only users that can manage teams.
   464   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
   465   * @param categoryId
   466   * @param optional nil or *UpdateCategoryOpts - Optional Parameters:
   467   * @param "Name" (optional.String) -  Category name.
   468   * @param "ParentId" (optional.String) -  ID of parent category.
   469   * @param "Color" (optional.Int32) -  displayed color for the category, see Category colors.
   470   * @param "Mandatory" (optional.Bool) -  mandatory categorization (Boolean).
   471   * @param "Multiple" (optional.Bool) -  allow to assign multiple child categories (Boolean).
   472   * @param "PostQualification" (optional.Bool) -  post qualification (Boolean).
   473   * @param "Unselectable" (optional.Bool) -  root category is unselectable (Boolean).
   474   * @param "SourceIds" (optional.Interface of []string) -  List of source id.
   475  @return Category
   476  */
   477  
   478  type UpdateCategoryOpts struct {
   479  	Name              optional.String
   480  	ParentId          optional.String
   481  	Color             optional.Int32
   482  	Mandatory         optional.Bool
   483  	Multiple          optional.Bool
   484  	PostQualification optional.Bool
   485  	Unselectable      optional.Bool
   486  	SourceIds         optional.Interface
   487  }
   488  
   489  func (a *CategoriesApiService) UpdateCategory(ctx context.Context, categoryId string, localVarOptionals *UpdateCategoryOpts) (Category, *http.Response, error) {
   490  	var (
   491  		localVarHttpMethod   = http.MethodPut
   492  		localVarPostBody     interface{}
   493  		localVarFormFileName string
   494  		localVarFileName     string
   495  		localVarFileBytes    []byte
   496  		localVarReturnValue  Category
   497  	)
   498  
   499  	// create path and map variables
   500  	localVarPath := a.client.cfg.BasePath + "/categories/{categoryId}"
   501  	localVarPath = strings.Replace(localVarPath, "{"+"categoryId"+"}", fmt.Sprintf("%v", categoryId), -1)
   502  
   503  	localVarHeaderParams := make(map[string]string)
   504  	localVarQueryParams := url.Values{}
   505  	localVarFormParams := url.Values{}
   506  
   507  	if localVarOptionals != nil && localVarOptionals.Name.IsSet() {
   508  		localVarQueryParams.Add("name", parameterToString(localVarOptionals.Name.Value(), ""))
   509  	}
   510  	if localVarOptionals != nil && localVarOptionals.ParentId.IsSet() {
   511  		localVarQueryParams.Add("parent_id", parameterToString(localVarOptionals.ParentId.Value(), ""))
   512  	}
   513  	if localVarOptionals != nil && localVarOptionals.Color.IsSet() {
   514  		localVarQueryParams.Add("color", parameterToString(localVarOptionals.Color.Value(), ""))
   515  	}
   516  	if localVarOptionals != nil && localVarOptionals.Mandatory.IsSet() {
   517  		localVarQueryParams.Add("mandatory", parameterToString(localVarOptionals.Mandatory.Value(), ""))
   518  	}
   519  	if localVarOptionals != nil && localVarOptionals.Multiple.IsSet() {
   520  		localVarQueryParams.Add("multiple", parameterToString(localVarOptionals.Multiple.Value(), ""))
   521  	}
   522  	if localVarOptionals != nil && localVarOptionals.PostQualification.IsSet() {
   523  		localVarQueryParams.Add("post_qualification", parameterToString(localVarOptionals.PostQualification.Value(), ""))
   524  	}
   525  	if localVarOptionals != nil && localVarOptionals.Unselectable.IsSet() {
   526  		localVarQueryParams.Add("unselectable", parameterToString(localVarOptionals.Unselectable.Value(), ""))
   527  	}
   528  	if localVarOptionals != nil && localVarOptionals.SourceIds.IsSet() {
   529  		t := localVarOptionals.SourceIds.Value()
   530  		if reflect.TypeOf(t).Kind() == reflect.Slice {
   531  			s := reflect.ValueOf(t)
   532  			for i := 0; i < s.Len(); i++ {
   533  				localVarQueryParams.Add("source_ids[]", parameterToString(s.Index(i), "multi"))
   534  			}
   535  		} else {
   536  			localVarQueryParams.Add("source_ids[]", parameterToString(t, "multi"))
   537  		}
   538  	}
   539  	// to determine the Content-Type header
   540  	localVarHttpContentTypes := []string{}
   541  
   542  	// set Content-Type header
   543  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   544  	if localVarHttpContentType != "" {
   545  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   546  	}
   547  
   548  	// to determine the Accept header
   549  	localVarHttpHeaderAccepts := []string{"application/json"}
   550  
   551  	// set Accept header
   552  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   553  	if localVarHttpHeaderAccept != "" {
   554  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   555  	}
   556  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
   557  	if err != nil {
   558  		return localVarReturnValue, nil, err
   559  	}
   560  
   561  	localVarHttpResponse, err := a.client.callAPI(r)
   562  	if err != nil || localVarHttpResponse == nil {
   563  		return localVarReturnValue, localVarHttpResponse, err
   564  	}
   565  
   566  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
   567  	localVarHttpResponse.Body.Close()
   568  	if err != nil {
   569  		return localVarReturnValue, localVarHttpResponse, err
   570  	}
   571  
   572  	if localVarHttpResponse.StatusCode >= 300 {
   573  		newErr := GenericOpenAPIError{
   574  			body:  localVarBody,
   575  			error: localVarHttpResponse.Status,
   576  		}
   577  		if localVarHttpResponse.StatusCode == 200 {
   578  			var v Category
   579  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   580  			if err != nil {
   581  				newErr.error = err.Error()
   582  				return localVarReturnValue, localVarHttpResponse, newErr
   583  			}
   584  			newErr.model = v
   585  			return localVarReturnValue, localVarHttpResponse, newErr
   586  		}
   587  		return localVarReturnValue, localVarHttpResponse, newErr
   588  	}
   589  
   590  	err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   591  	if err != nil {
   592  		newErr := GenericOpenAPIError{
   593  			body:  localVarBody,
   594  			error: err.Error(),
   595  		}
   596  		return localVarReturnValue, localVarHttpResponse, newErr
   597  	}
   598  
   599  	return localVarReturnValue, localVarHttpResponse, nil
   600  }