github.com/grokify/go-ringcentral-client@v0.3.31/engagedigital/v1/client/api_channels.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 ChannelsApiService service
    29  
    30  /*
    31  ChannelsApiService Getting all channels
    32  This method renders all channels ordered by date of creation.
    33   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
    34   * @param optional nil or *GetAllChannelsOpts - Optional Parameters:
    35   * @param "Offset" (optional.Int32) -  The record index to start. Default value is 0.
    36   * @param "Limit" (optional.Int32) -  The max number of records to return. Default value is 30, max value is 150.
    37  @return GetAllChannelsResponse
    38  */
    39  
    40  type GetAllChannelsOpts struct {
    41  	Offset optional.Int32
    42  	Limit  optional.Int32
    43  }
    44  
    45  func (a *ChannelsApiService) GetAllChannels(ctx context.Context, localVarOptionals *GetAllChannelsOpts) (GetAllChannelsResponse, *http.Response, error) {
    46  	var (
    47  		localVarHttpMethod   = http.MethodGet
    48  		localVarPostBody     interface{}
    49  		localVarFormFileName string
    50  		localVarFileName     string
    51  		localVarFileBytes    []byte
    52  		localVarReturnValue  GetAllChannelsResponse
    53  	)
    54  
    55  	// create path and map variables
    56  	localVarPath := a.client.cfg.BasePath + "/channels"
    57  
    58  	localVarHeaderParams := make(map[string]string)
    59  	localVarQueryParams := url.Values{}
    60  	localVarFormParams := url.Values{}
    61  
    62  	if localVarOptionals != nil && localVarOptionals.Offset.IsSet() {
    63  		localVarQueryParams.Add("offset", parameterToString(localVarOptionals.Offset.Value(), ""))
    64  	}
    65  	if localVarOptionals != nil && localVarOptionals.Limit.IsSet() {
    66  		localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), ""))
    67  	}
    68  	// to determine the Content-Type header
    69  	localVarHttpContentTypes := []string{}
    70  
    71  	// set Content-Type header
    72  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
    73  	if localVarHttpContentType != "" {
    74  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
    75  	}
    76  
    77  	// to determine the Accept header
    78  	localVarHttpHeaderAccepts := []string{"application/json"}
    79  
    80  	// set Accept header
    81  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
    82  	if localVarHttpHeaderAccept != "" {
    83  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
    84  	}
    85  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
    86  	if err != nil {
    87  		return localVarReturnValue, nil, err
    88  	}
    89  
    90  	localVarHttpResponse, err := a.client.callAPI(r)
    91  	if err != nil || localVarHttpResponse == nil {
    92  		return localVarReturnValue, localVarHttpResponse, err
    93  	}
    94  
    95  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
    96  	localVarHttpResponse.Body.Close()
    97  	if err != nil {
    98  		return localVarReturnValue, localVarHttpResponse, err
    99  	}
   100  
   101  	if localVarHttpResponse.StatusCode >= 300 {
   102  		newErr := GenericOpenAPIError{
   103  			body:  localVarBody,
   104  			error: localVarHttpResponse.Status,
   105  		}
   106  		if localVarHttpResponse.StatusCode == 200 {
   107  			var v GetAllChannelsResponse
   108  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   109  			if err != nil {
   110  				newErr.error = err.Error()
   111  				return localVarReturnValue, localVarHttpResponse, newErr
   112  			}
   113  			newErr.model = v
   114  			return localVarReturnValue, localVarHttpResponse, newErr
   115  		}
   116  		return localVarReturnValue, localVarHttpResponse, newErr
   117  	}
   118  
   119  	err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   120  	if err != nil {
   121  		newErr := GenericOpenAPIError{
   122  			body:  localVarBody,
   123  			error: err.Error(),
   124  		}
   125  		return localVarReturnValue, localVarHttpResponse, newErr
   126  	}
   127  
   128  	return localVarReturnValue, localVarHttpResponse, nil
   129  }
   130  
   131  /*
   132  ChannelsApiService Getting a channel from its id
   133  This method renders a channel from given id.
   134   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
   135   * @param channelId
   136  @return Channel
   137  */
   138  func (a *ChannelsApiService) GetChannel(ctx context.Context, channelId string) (Channel, *http.Response, error) {
   139  	var (
   140  		localVarHttpMethod   = http.MethodGet
   141  		localVarPostBody     interface{}
   142  		localVarFormFileName string
   143  		localVarFileName     string
   144  		localVarFileBytes    []byte
   145  		localVarReturnValue  Channel
   146  	)
   147  
   148  	// create path and map variables
   149  	localVarPath := a.client.cfg.BasePath + "/channels/{channelId}"
   150  	localVarPath = strings.Replace(localVarPath, "{"+"channelId"+"}", fmt.Sprintf("%v", channelId), -1)
   151  
   152  	localVarHeaderParams := make(map[string]string)
   153  	localVarQueryParams := url.Values{}
   154  	localVarFormParams := url.Values{}
   155  
   156  	// to determine the Content-Type header
   157  	localVarHttpContentTypes := []string{}
   158  
   159  	// set Content-Type header
   160  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   161  	if localVarHttpContentType != "" {
   162  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   163  	}
   164  
   165  	// to determine the Accept header
   166  	localVarHttpHeaderAccepts := []string{"application/json"}
   167  
   168  	// set Accept header
   169  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   170  	if localVarHttpHeaderAccept != "" {
   171  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   172  	}
   173  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
   174  	if err != nil {
   175  		return localVarReturnValue, nil, err
   176  	}
   177  
   178  	localVarHttpResponse, err := a.client.callAPI(r)
   179  	if err != nil || localVarHttpResponse == nil {
   180  		return localVarReturnValue, localVarHttpResponse, err
   181  	}
   182  
   183  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
   184  	localVarHttpResponse.Body.Close()
   185  	if err != nil {
   186  		return localVarReturnValue, localVarHttpResponse, err
   187  	}
   188  
   189  	if localVarHttpResponse.StatusCode >= 300 {
   190  		newErr := GenericOpenAPIError{
   191  			body:  localVarBody,
   192  			error: localVarHttpResponse.Status,
   193  		}
   194  		if localVarHttpResponse.StatusCode == 200 {
   195  			var v Channel
   196  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   197  			if err != nil {
   198  				newErr.error = err.Error()
   199  				return localVarReturnValue, localVarHttpResponse, newErr
   200  			}
   201  			newErr.model = v
   202  			return localVarReturnValue, localVarHttpResponse, newErr
   203  		}
   204  		return localVarReturnValue, localVarHttpResponse, newErr
   205  	}
   206  
   207  	err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   208  	if err != nil {
   209  		newErr := GenericOpenAPIError{
   210  			body:  localVarBody,
   211  			error: err.Error(),
   212  		}
   213  		return localVarReturnValue, localVarHttpResponse, newErr
   214  	}
   215  
   216  	return localVarReturnValue, localVarHttpResponse, nil
   217  }
   218  
   219  /*
   220  ChannelsApiService Updating a channel
   221  This method updates an existing channel from given attributes and renders it in case of success.  Authorization​: only users that are able to update channels.
   222   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
   223   * @param channelId
   224   * @param optional nil or *UpdateChannelOpts - Optional Parameters:
   225   * @param "Name" (optional.String) -  The name of the channel.
   226   * @param "SourceIds" (optional.Interface of []string) -  An array containing id of each source assigned to a channel (multiple).
   227   * @param "SoftCapability" (optional.Int32) -  Number of tasks that can be assigned to agent by the routing before they are considered \"occupied\".
   228   * @param "HardCapability" (optional.Int32) -  M​aximum number of tasks that can be assigned to agents.
   229   * @param "TaskTimeoutSeconds" (optional.Int32) -  this field defines the time before a task expires (in seconds).
   230  @return Channel
   231  */
   232  
   233  type UpdateChannelOpts struct {
   234  	Name               optional.String
   235  	SourceIds          optional.Interface
   236  	SoftCapability     optional.Int32
   237  	HardCapability     optional.Int32
   238  	TaskTimeoutSeconds optional.Int32
   239  }
   240  
   241  func (a *ChannelsApiService) UpdateChannel(ctx context.Context, channelId string, localVarOptionals *UpdateChannelOpts) (Channel, *http.Response, error) {
   242  	var (
   243  		localVarHttpMethod   = http.MethodPut
   244  		localVarPostBody     interface{}
   245  		localVarFormFileName string
   246  		localVarFileName     string
   247  		localVarFileBytes    []byte
   248  		localVarReturnValue  Channel
   249  	)
   250  
   251  	// create path and map variables
   252  	localVarPath := a.client.cfg.BasePath + "/channels/{channelId}"
   253  	localVarPath = strings.Replace(localVarPath, "{"+"channelId"+"}", fmt.Sprintf("%v", channelId), -1)
   254  
   255  	localVarHeaderParams := make(map[string]string)
   256  	localVarQueryParams := url.Values{}
   257  	localVarFormParams := url.Values{}
   258  
   259  	if localVarOptionals != nil && localVarOptionals.Name.IsSet() {
   260  		localVarQueryParams.Add("name", parameterToString(localVarOptionals.Name.Value(), ""))
   261  	}
   262  	if localVarOptionals != nil && localVarOptionals.SourceIds.IsSet() {
   263  		t := localVarOptionals.SourceIds.Value()
   264  		if reflect.TypeOf(t).Kind() == reflect.Slice {
   265  			s := reflect.ValueOf(t)
   266  			for i := 0; i < s.Len(); i++ {
   267  				localVarQueryParams.Add("source_ids", parameterToString(s.Index(i), "multi"))
   268  			}
   269  		} else {
   270  			localVarQueryParams.Add("source_ids", parameterToString(t, "multi"))
   271  		}
   272  	}
   273  	if localVarOptionals != nil && localVarOptionals.SoftCapability.IsSet() {
   274  		localVarQueryParams.Add("soft_capability", parameterToString(localVarOptionals.SoftCapability.Value(), ""))
   275  	}
   276  	if localVarOptionals != nil && localVarOptionals.HardCapability.IsSet() {
   277  		localVarQueryParams.Add("hard_capability", parameterToString(localVarOptionals.HardCapability.Value(), ""))
   278  	}
   279  	if localVarOptionals != nil && localVarOptionals.TaskTimeoutSeconds.IsSet() {
   280  		localVarQueryParams.Add("task_timeout_seconds", parameterToString(localVarOptionals.TaskTimeoutSeconds.Value(), ""))
   281  	}
   282  	// to determine the Content-Type header
   283  	localVarHttpContentTypes := []string{}
   284  
   285  	// set Content-Type header
   286  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   287  	if localVarHttpContentType != "" {
   288  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   289  	}
   290  
   291  	// to determine the Accept header
   292  	localVarHttpHeaderAccepts := []string{"application/json"}
   293  
   294  	// set Accept header
   295  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   296  	if localVarHttpHeaderAccept != "" {
   297  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   298  	}
   299  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
   300  	if err != nil {
   301  		return localVarReturnValue, nil, err
   302  	}
   303  
   304  	localVarHttpResponse, err := a.client.callAPI(r)
   305  	if err != nil || localVarHttpResponse == nil {
   306  		return localVarReturnValue, localVarHttpResponse, err
   307  	}
   308  
   309  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
   310  	localVarHttpResponse.Body.Close()
   311  	if err != nil {
   312  		return localVarReturnValue, localVarHttpResponse, err
   313  	}
   314  
   315  	if localVarHttpResponse.StatusCode >= 300 {
   316  		newErr := GenericOpenAPIError{
   317  			body:  localVarBody,
   318  			error: localVarHttpResponse.Status,
   319  		}
   320  		if localVarHttpResponse.StatusCode == 200 {
   321  			var v Channel
   322  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   323  			if err != nil {
   324  				newErr.error = err.Error()
   325  				return localVarReturnValue, localVarHttpResponse, newErr
   326  			}
   327  			newErr.model = v
   328  			return localVarReturnValue, localVarHttpResponse, newErr
   329  		}
   330  		return localVarReturnValue, localVarHttpResponse, newErr
   331  	}
   332  
   333  	err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   334  	if err != nil {
   335  		newErr := GenericOpenAPIError{
   336  			body:  localVarBody,
   337  			error: err.Error(),
   338  		}
   339  		return localVarReturnValue, localVarHttpResponse, newErr
   340  	}
   341  
   342  	return localVarReturnValue, localVarHttpResponse, nil
   343  }