github.com/grokify/go-ringcentral-client@v0.3.31/engagedigital/v1/client/api_agent_status.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  	"strings"
    20  )
    21  
    22  // Linger please
    23  var (
    24  	_ context.Context
    25  )
    26  
    27  type AgentStatusApiService service
    28  
    29  /*
    30  AgentStatusApiService Changing an agent's status
    31  This method updates an agent's availability. Can be used to set either channels statuses OR custom  status. If both parameters are provided, ignores custom status.The status parameter​ **MUST** b​e either “away” or “available”.  Authorization​: only users that have the right to monitor the task view.
    32   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
    33   * @param agentId
    34   * @param optional nil or *ChangeAgentStatusOpts - Optional Parameters:
    35   * @param "Status" (optional.String) -  A hash of channel_id => availability (must contain all channels).
    36   * @param "CustomStatusId" (optional.String) -  id of presence status (optional)
    37  @return AgentStatus
    38  */
    39  
    40  type ChangeAgentStatusOpts struct {
    41  	Status         optional.String
    42  	CustomStatusId optional.String
    43  }
    44  
    45  func (a *AgentStatusApiService) ChangeAgentStatus(ctx context.Context, agentId string, localVarOptionals *ChangeAgentStatusOpts) (AgentStatus, *http.Response, error) {
    46  	var (
    47  		localVarHttpMethod   = http.MethodPut
    48  		localVarPostBody     interface{}
    49  		localVarFormFileName string
    50  		localVarFileName     string
    51  		localVarFileBytes    []byte
    52  		localVarReturnValue  AgentStatus
    53  	)
    54  
    55  	// create path and map variables
    56  	localVarPath := a.client.cfg.BasePath + "/status/{agentId}"
    57  	localVarPath = strings.Replace(localVarPath, "{"+"agentId"+"}", fmt.Sprintf("%v", agentId), -1)
    58  
    59  	localVarHeaderParams := make(map[string]string)
    60  	localVarQueryParams := url.Values{}
    61  	localVarFormParams := url.Values{}
    62  
    63  	if localVarOptionals != nil && localVarOptionals.Status.IsSet() {
    64  		localVarQueryParams.Add("status", parameterToString(localVarOptionals.Status.Value(), ""))
    65  	}
    66  	if localVarOptionals != nil && localVarOptionals.CustomStatusId.IsSet() {
    67  		localVarQueryParams.Add("custom_status_id", parameterToString(localVarOptionals.CustomStatusId.Value(), ""))
    68  	}
    69  	// to determine the Content-Type header
    70  	localVarHttpContentTypes := []string{}
    71  
    72  	// set Content-Type header
    73  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
    74  	if localVarHttpContentType != "" {
    75  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
    76  	}
    77  
    78  	// to determine the Accept header
    79  	localVarHttpHeaderAccepts := []string{"application/json"}
    80  
    81  	// set Accept header
    82  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
    83  	if localVarHttpHeaderAccept != "" {
    84  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
    85  	}
    86  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
    87  	if err != nil {
    88  		return localVarReturnValue, nil, err
    89  	}
    90  
    91  	localVarHttpResponse, err := a.client.callAPI(r)
    92  	if err != nil || localVarHttpResponse == nil {
    93  		return localVarReturnValue, localVarHttpResponse, err
    94  	}
    95  
    96  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
    97  	localVarHttpResponse.Body.Close()
    98  	if err != nil {
    99  		return localVarReturnValue, localVarHttpResponse, err
   100  	}
   101  
   102  	if localVarHttpResponse.StatusCode >= 300 {
   103  		newErr := GenericOpenAPIError{
   104  			body:  localVarBody,
   105  			error: localVarHttpResponse.Status,
   106  		}
   107  		if localVarHttpResponse.StatusCode == 200 {
   108  			var v AgentStatus
   109  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   110  			if err != nil {
   111  				newErr.error = err.Error()
   112  				return localVarReturnValue, localVarHttpResponse, newErr
   113  			}
   114  			newErr.model = v
   115  			return localVarReturnValue, localVarHttpResponse, newErr
   116  		}
   117  		return localVarReturnValue, localVarHttpResponse, newErr
   118  	}
   119  
   120  	err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   121  	if err != nil {
   122  		newErr := GenericOpenAPIError{
   123  			body:  localVarBody,
   124  			error: err.Error(),
   125  		}
   126  		return localVarReturnValue, localVarHttpResponse, newErr
   127  	}
   128  
   129  	return localVarReturnValue, localVarHttpResponse, nil
   130  }
   131  
   132  /*
   133  AgentStatusApiService Get a connected agent status
   134  This method get the status of a connected agent. Returns a 404 if the user does not exist (not_found) or if he’s not connected (disconnected).  Authorization​: only users that have the right to monitor the task view.
   135   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
   136   * @param agentId
   137  @return AgentStatus
   138  */
   139  func (a *AgentStatusApiService) GetAgentStatus(ctx context.Context, agentId string) (AgentStatus, *http.Response, error) {
   140  	var (
   141  		localVarHttpMethod   = http.MethodGet
   142  		localVarPostBody     interface{}
   143  		localVarFormFileName string
   144  		localVarFileName     string
   145  		localVarFileBytes    []byte
   146  		localVarReturnValue  AgentStatus
   147  	)
   148  
   149  	// create path and map variables
   150  	localVarPath := a.client.cfg.BasePath + "/status/{agentId}"
   151  	localVarPath = strings.Replace(localVarPath, "{"+"agentId"+"}", fmt.Sprintf("%v", agentId), -1)
   152  
   153  	localVarHeaderParams := make(map[string]string)
   154  	localVarQueryParams := url.Values{}
   155  	localVarFormParams := url.Values{}
   156  
   157  	// to determine the Content-Type header
   158  	localVarHttpContentTypes := []string{}
   159  
   160  	// set Content-Type header
   161  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   162  	if localVarHttpContentType != "" {
   163  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   164  	}
   165  
   166  	// to determine the Accept header
   167  	localVarHttpHeaderAccepts := []string{"application/json"}
   168  
   169  	// set Accept header
   170  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   171  	if localVarHttpHeaderAccept != "" {
   172  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   173  	}
   174  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
   175  	if err != nil {
   176  		return localVarReturnValue, nil, err
   177  	}
   178  
   179  	localVarHttpResponse, err := a.client.callAPI(r)
   180  	if err != nil || localVarHttpResponse == nil {
   181  		return localVarReturnValue, localVarHttpResponse, err
   182  	}
   183  
   184  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
   185  	localVarHttpResponse.Body.Close()
   186  	if err != nil {
   187  		return localVarReturnValue, localVarHttpResponse, err
   188  	}
   189  
   190  	if localVarHttpResponse.StatusCode >= 300 {
   191  		newErr := GenericOpenAPIError{
   192  			body:  localVarBody,
   193  			error: localVarHttpResponse.Status,
   194  		}
   195  		if localVarHttpResponse.StatusCode == 200 {
   196  			var v AgentStatus
   197  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   198  			if err != nil {
   199  				newErr.error = err.Error()
   200  				return localVarReturnValue, localVarHttpResponse, newErr
   201  			}
   202  			newErr.model = v
   203  			return localVarReturnValue, localVarHttpResponse, newErr
   204  		}
   205  		return localVarReturnValue, localVarHttpResponse, newErr
   206  	}
   207  
   208  	err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   209  	if err != nil {
   210  		newErr := GenericOpenAPIError{
   211  			body:  localVarBody,
   212  			error: err.Error(),
   213  		}
   214  		return localVarReturnValue, localVarHttpResponse, newErr
   215  	}
   216  
   217  	return localVarReturnValue, localVarHttpResponse, nil
   218  }
   219  
   220  /*
   221  AgentStatusApiService Get all connected agents status
   222  This method get all currently connected agents & their status.  Authorization​: only users that have the right to monitor the task view.
   223   * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
   224  @return []AgentStatus
   225  */
   226  func (a *AgentStatusApiService) GetAllAgentStatus(ctx context.Context) ([]AgentStatus, *http.Response, error) {
   227  	var (
   228  		localVarHttpMethod   = http.MethodGet
   229  		localVarPostBody     interface{}
   230  		localVarFormFileName string
   231  		localVarFileName     string
   232  		localVarFileBytes    []byte
   233  		localVarReturnValue  []AgentStatus
   234  	)
   235  
   236  	// create path and map variables
   237  	localVarPath := a.client.cfg.BasePath + "/status"
   238  
   239  	localVarHeaderParams := make(map[string]string)
   240  	localVarQueryParams := url.Values{}
   241  	localVarFormParams := url.Values{}
   242  
   243  	// to determine the Content-Type header
   244  	localVarHttpContentTypes := []string{}
   245  
   246  	// set Content-Type header
   247  	localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
   248  	if localVarHttpContentType != "" {
   249  		localVarHeaderParams["Content-Type"] = localVarHttpContentType
   250  	}
   251  
   252  	// to determine the Accept header
   253  	localVarHttpHeaderAccepts := []string{"application/json"}
   254  
   255  	// set Accept header
   256  	localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
   257  	if localVarHttpHeaderAccept != "" {
   258  		localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
   259  	}
   260  	r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
   261  	if err != nil {
   262  		return localVarReturnValue, nil, err
   263  	}
   264  
   265  	localVarHttpResponse, err := a.client.callAPI(r)
   266  	if err != nil || localVarHttpResponse == nil {
   267  		return localVarReturnValue, localVarHttpResponse, err
   268  	}
   269  
   270  	localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
   271  	localVarHttpResponse.Body.Close()
   272  	if err != nil {
   273  		return localVarReturnValue, localVarHttpResponse, err
   274  	}
   275  
   276  	if localVarHttpResponse.StatusCode >= 300 {
   277  		newErr := GenericOpenAPIError{
   278  			body:  localVarBody,
   279  			error: localVarHttpResponse.Status,
   280  		}
   281  		if localVarHttpResponse.StatusCode == 200 {
   282  			var v []AgentStatus
   283  			err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   284  			if err != nil {
   285  				newErr.error = err.Error()
   286  				return localVarReturnValue, localVarHttpResponse, newErr
   287  			}
   288  			newErr.model = v
   289  			return localVarReturnValue, localVarHttpResponse, newErr
   290  		}
   291  		return localVarReturnValue, localVarHttpResponse, newErr
   292  	}
   293  
   294  	err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
   295  	if err != nil {
   296  		newErr := GenericOpenAPIError{
   297  			body:  localVarBody,
   298  			error: err.Error(),
   299  		}
   300  		return localVarReturnValue, localVarHttpResponse, newErr
   301  	}
   302  
   303  	return localVarReturnValue, localVarHttpResponse, nil
   304  }