github.com/twilio/twilio-go@v1.20.1/rest/taskrouter/v1/workspaces_workers_statistics.go (about)

     1  /*
     2   * This code was generated by
     3   * ___ _ _ _ _ _    _ ____    ____ ____ _    ____ ____ _  _ ____ ____ ____ ___ __   __
     4   *  |  | | | | |    | |  | __ |  | |__| | __ | __ |___ |\ | |___ |__/ |__|  | |  | |__/
     5   *  |  |_|_| | |___ | |__|    |__| |  | |    |__] |___ | \| |___ |  \ |  |  | |__| |  \
     6   *
     7   * Twilio - Taskrouter
     8   * This is the public Twilio REST API.
     9   *
    10   * NOTE: This class is auto generated by OpenAPI Generator.
    11   * https://openapi-generator.tech
    12   * Do not edit the class manually.
    13   */
    14  
    15  package openapi
    16  
    17  import (
    18  	"encoding/json"
    19  	"fmt"
    20  	"net/url"
    21  	"strings"
    22  	"time"
    23  )
    24  
    25  // Optional parameters for the method 'FetchWorkerInstanceStatistics'
    26  type FetchWorkerInstanceStatisticsParams struct {
    27  	// Only calculate statistics since this many minutes in the past. The default 15 minutes. This is helpful for displaying statistics for the last 15 minutes, 240 minutes (4 hours), and 480 minutes (8 hours) to see trends.
    28  	Minutes *int `json:"Minutes,omitempty"`
    29  	// Only calculate statistics from this date and time and later, specified in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.
    30  	StartDate *time.Time `json:"StartDate,omitempty"`
    31  	// Only include usage that occurred on or before this date, specified in GMT as an [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time.
    32  	EndDate *time.Time `json:"EndDate,omitempty"`
    33  	// Only calculate statistics on this TaskChannel. Can be the TaskChannel's SID or its `unique_name`, such as `voice`, `sms`, or `default`.
    34  	TaskChannel *string `json:"TaskChannel,omitempty"`
    35  }
    36  
    37  func (params *FetchWorkerInstanceStatisticsParams) SetMinutes(Minutes int) *FetchWorkerInstanceStatisticsParams {
    38  	params.Minutes = &Minutes
    39  	return params
    40  }
    41  func (params *FetchWorkerInstanceStatisticsParams) SetStartDate(StartDate time.Time) *FetchWorkerInstanceStatisticsParams {
    42  	params.StartDate = &StartDate
    43  	return params
    44  }
    45  func (params *FetchWorkerInstanceStatisticsParams) SetEndDate(EndDate time.Time) *FetchWorkerInstanceStatisticsParams {
    46  	params.EndDate = &EndDate
    47  	return params
    48  }
    49  func (params *FetchWorkerInstanceStatisticsParams) SetTaskChannel(TaskChannel string) *FetchWorkerInstanceStatisticsParams {
    50  	params.TaskChannel = &TaskChannel
    51  	return params
    52  }
    53  
    54  //
    55  func (c *ApiService) FetchWorkerInstanceStatistics(WorkspaceSid string, WorkerSid string, params *FetchWorkerInstanceStatisticsParams) (*TaskrouterV1WorkerInstanceStatistics, error) {
    56  	path := "/v1/Workspaces/{WorkspaceSid}/Workers/{WorkerSid}/Statistics"
    57  	path = strings.Replace(path, "{"+"WorkspaceSid"+"}", WorkspaceSid, -1)
    58  	path = strings.Replace(path, "{"+"WorkerSid"+"}", WorkerSid, -1)
    59  
    60  	data := url.Values{}
    61  	headers := make(map[string]interface{})
    62  
    63  	if params != nil && params.Minutes != nil {
    64  		data.Set("Minutes", fmt.Sprint(*params.Minutes))
    65  	}
    66  	if params != nil && params.StartDate != nil {
    67  		data.Set("StartDate", fmt.Sprint((*params.StartDate).Format(time.RFC3339)))
    68  	}
    69  	if params != nil && params.EndDate != nil {
    70  		data.Set("EndDate", fmt.Sprint((*params.EndDate).Format(time.RFC3339)))
    71  	}
    72  	if params != nil && params.TaskChannel != nil {
    73  		data.Set("TaskChannel", *params.TaskChannel)
    74  	}
    75  
    76  	resp, err := c.requestHandler.Get(c.baseURL+path, data, headers)
    77  	if err != nil {
    78  		return nil, err
    79  	}
    80  
    81  	defer resp.Body.Close()
    82  
    83  	ps := &TaskrouterV1WorkerInstanceStatistics{}
    84  	if err := json.NewDecoder(resp.Body).Decode(ps); err != nil {
    85  		return nil, err
    86  	}
    87  
    88  	return ps, err
    89  }
    90  
    91  // Optional parameters for the method 'FetchWorkerStatistics'
    92  type FetchWorkerStatisticsParams struct {
    93  	// Only calculate statistics since this many minutes in the past. The default 15 minutes. This is helpful for displaying statistics for the last 15 minutes, 240 minutes (4 hours), and 480 minutes (8 hours) to see trends.
    94  	Minutes *int `json:"Minutes,omitempty"`
    95  	// Only calculate statistics from this date and time and later, specified in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.
    96  	StartDate *time.Time `json:"StartDate,omitempty"`
    97  	// Only calculate statistics from this date and time and earlier, specified in GMT as an [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time.
    98  	EndDate *time.Time `json:"EndDate,omitempty"`
    99  	// The SID of the TaskQueue for which to fetch Worker statistics.
   100  	TaskQueueSid *string `json:"TaskQueueSid,omitempty"`
   101  	// The `friendly_name` of the TaskQueue for which to fetch Worker statistics.
   102  	TaskQueueName *string `json:"TaskQueueName,omitempty"`
   103  	// Only include Workers with `friendly_name` values that match this parameter.
   104  	FriendlyName *string `json:"FriendlyName,omitempty"`
   105  	// Only calculate statistics on this TaskChannel. Can be the TaskChannel's SID or its `unique_name`, such as `voice`, `sms`, or `default`.
   106  	TaskChannel *string `json:"TaskChannel,omitempty"`
   107  }
   108  
   109  func (params *FetchWorkerStatisticsParams) SetMinutes(Minutes int) *FetchWorkerStatisticsParams {
   110  	params.Minutes = &Minutes
   111  	return params
   112  }
   113  func (params *FetchWorkerStatisticsParams) SetStartDate(StartDate time.Time) *FetchWorkerStatisticsParams {
   114  	params.StartDate = &StartDate
   115  	return params
   116  }
   117  func (params *FetchWorkerStatisticsParams) SetEndDate(EndDate time.Time) *FetchWorkerStatisticsParams {
   118  	params.EndDate = &EndDate
   119  	return params
   120  }
   121  func (params *FetchWorkerStatisticsParams) SetTaskQueueSid(TaskQueueSid string) *FetchWorkerStatisticsParams {
   122  	params.TaskQueueSid = &TaskQueueSid
   123  	return params
   124  }
   125  func (params *FetchWorkerStatisticsParams) SetTaskQueueName(TaskQueueName string) *FetchWorkerStatisticsParams {
   126  	params.TaskQueueName = &TaskQueueName
   127  	return params
   128  }
   129  func (params *FetchWorkerStatisticsParams) SetFriendlyName(FriendlyName string) *FetchWorkerStatisticsParams {
   130  	params.FriendlyName = &FriendlyName
   131  	return params
   132  }
   133  func (params *FetchWorkerStatisticsParams) SetTaskChannel(TaskChannel string) *FetchWorkerStatisticsParams {
   134  	params.TaskChannel = &TaskChannel
   135  	return params
   136  }
   137  
   138  //
   139  func (c *ApiService) FetchWorkerStatistics(WorkspaceSid string, params *FetchWorkerStatisticsParams) (*TaskrouterV1WorkerStatistics, error) {
   140  	path := "/v1/Workspaces/{WorkspaceSid}/Workers/Statistics"
   141  	path = strings.Replace(path, "{"+"WorkspaceSid"+"}", WorkspaceSid, -1)
   142  
   143  	data := url.Values{}
   144  	headers := make(map[string]interface{})
   145  
   146  	if params != nil && params.Minutes != nil {
   147  		data.Set("Minutes", fmt.Sprint(*params.Minutes))
   148  	}
   149  	if params != nil && params.StartDate != nil {
   150  		data.Set("StartDate", fmt.Sprint((*params.StartDate).Format(time.RFC3339)))
   151  	}
   152  	if params != nil && params.EndDate != nil {
   153  		data.Set("EndDate", fmt.Sprint((*params.EndDate).Format(time.RFC3339)))
   154  	}
   155  	if params != nil && params.TaskQueueSid != nil {
   156  		data.Set("TaskQueueSid", *params.TaskQueueSid)
   157  	}
   158  	if params != nil && params.TaskQueueName != nil {
   159  		data.Set("TaskQueueName", *params.TaskQueueName)
   160  	}
   161  	if params != nil && params.FriendlyName != nil {
   162  		data.Set("FriendlyName", *params.FriendlyName)
   163  	}
   164  	if params != nil && params.TaskChannel != nil {
   165  		data.Set("TaskChannel", *params.TaskChannel)
   166  	}
   167  
   168  	resp, err := c.requestHandler.Get(c.baseURL+path, data, headers)
   169  	if err != nil {
   170  		return nil, err
   171  	}
   172  
   173  	defer resp.Body.Close()
   174  
   175  	ps := &TaskrouterV1WorkerStatistics{}
   176  	if err := json.NewDecoder(resp.Body).Decode(ps); err != nil {
   177  		return nil, err
   178  	}
   179  
   180  	return ps, err
   181  }