Module livechat.reports.api.v33
Reports API module with client class in version 3.3.
Expand source code
''' Reports API module with client class in version 3.3. '''
from typing import Union
import httpx
from livechat.utils.helpers import prepare_payload
from livechat.utils.http_client import HttpClient
from livechat.utils.structures import AccessToken
class ReportsApiV33(HttpClient):
''' Reports API client class in version 3.3. '''
def __init__(self,
token: Union[AccessToken, str],
base_url: str,
http2: bool,
proxies=None,
verify: bool = True,
disable_logging: bool = False,
timeout: float = httpx.Timeout(15)):
super().__init__(token, base_url, http2, proxies, verify,
disable_logging, timeout)
self.api_url = f'https://{base_url}/v3.3/reports'
# Chats
def agents_chatting_duration(self,
date_to: str = None,
date_from: str = None,
agents: str = None,
groups: str = None,
tags: str = None,
customer_client_ids: str = None,
distribution: str = None,
timezone: str = None,
tagged: bool = None,
payload: dict = None,
headers: dict = None) -> httpx.Response:
''' Shows the average chatting duration of agents within a license.
Args:
date_to (str): Date in the RFC3339 format, which also contains a timezone.
This timezone will be used if no `timezone` is provided.
date_from (str): Date in the RFC3339 format, which also contains a timezone.
This timezone will be used if no `timezone` is provided.
agents (str): Agent emails separated by a comma.
If not specified, returns the data for all agents within the license.
groups (str): Group IDs separated by a comma.
tags (str): Names of tags separated by a comma.
customer_client_ids (str): Client IDs separated by a comma.
distribution (str): Possible values: `hour`, `day-hours`, `day`, `month`; defaults to `day`.
timezone (str): Timezone in the TZ format (e.g. America/Phoenix).
Defaults to the requester's timezone.
If not present, `from` is parsed to get the requester's timezone.
tagged (bool): Possible values: `true`, `1`, `false`, `0`
payload (dict): Custom payload to be used as request's data.
It overrides all other parameters provided for the method.
headers (dict): Custom headers to be used with session headers.
They will be merged with session-level values that are set,
however, these method-level parameters will not be persisted across requests.
Returns:
httpx.Response: The Response object from `httpx` library,
which contains a server's response to an HTTP request.
'''
if payload is None:
payload = prepare_payload(locals())
if date_from is not None:
payload['from'] = date_from
if date_to is not None:
payload['to'] = date_to
return self.session.get(
f'{self.api_url}/chats/agents_chatting_duration',
params=payload,
headers=headers)
def tags(self,
distribution: str = None,
timezone: str = None,
filters: dict = None,
payload: dict = None,
headers: dict = None) -> httpx.Response:
''' Shows the distribution of tags for chats.
Args:
distribution (str): Allowed values: `hour`, `day`, `day-hours`, `month` or `year`. Defaults to `day`.
timezone (str): IANA Time Zone (e.g. America/Phoenix).
Defaults to the requester's timezone.
When the requester's timezone isn't present, then `filters.from` is parsed to get the timezone.
filters (dict): If none provided, your report will span the last seven days.
payload (dict): Custom payload to be used as request's data.
It overrides all other parameters provided for the method.
headers (dict): Custom headers to be used with session headers.
They will be merged with session-level values that are set,
however, these method-level parameters will not be persisted across requests.
Returns:
httpx.Response: The Response object from `httpx` library,
which contains a server's response to an HTTP request.
'''
if payload is None:
payload = prepare_payload(locals())
return self.session.get(f'{self.api_url}/chats/tags',
params=payload,
headers=headers)
def total_chats(self,
distribution: str = None,
timezone: str = None,
filters: dict = None,
payload: dict = None,
headers: dict = None) -> httpx.Response:
''' Shows how many chats occurred during the specified period.
Args:
distribution (str): Allowed values: `hour`, `day`, `day-hours`, `month` or `year`. Defaults to `day`.
timezone (str): IANA Time Zone (e.g. America/Phoenix).
Defaults to the requester's timezone.
When the requester's timezone isn't present, then `filters.from` is parsed to get the timezone.
filters (dict): If none provided, your report will span the last seven days.
payload (dict): Custom payload to be used as request's data.
It overrides all other parameters provided for the method.
headers (dict): Custom headers to be used with session headers.
They will be merged with session-level values that are set,
however, these method-level parameters will not be persisted across requests.
Returns:
httpx.Response: The Response object from `httpx` library,
which contains a server's response to an HTTP request.
'''
if payload is None:
payload = prepare_payload(locals())
return self.session.get(f'{self.api_url}/chats/total_chats',
params=payload,
headers=headers)
Classes
class ReportsApiV33 (token: Union[livechat.utils.structures.AccessToken, str], base_url: str, http2: bool, proxies=None, verify: bool = True, disable_logging: bool = False, timeout: float = Timeout(timeout=15))
-
Reports API client class in version 3.3.
Expand source code
class ReportsApiV33(HttpClient): ''' Reports API client class in version 3.3. ''' def __init__(self, token: Union[AccessToken, str], base_url: str, http2: bool, proxies=None, verify: bool = True, disable_logging: bool = False, timeout: float = httpx.Timeout(15)): super().__init__(token, base_url, http2, proxies, verify, disable_logging, timeout) self.api_url = f'https://{base_url}/v3.3/reports' # Chats def agents_chatting_duration(self, date_to: str = None, date_from: str = None, agents: str = None, groups: str = None, tags: str = None, customer_client_ids: str = None, distribution: str = None, timezone: str = None, tagged: bool = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Shows the average chatting duration of agents within a license. Args: date_to (str): Date in the RFC3339 format, which also contains a timezone. This timezone will be used if no `timezone` is provided. date_from (str): Date in the RFC3339 format, which also contains a timezone. This timezone will be used if no `timezone` is provided. agents (str): Agent emails separated by a comma. If not specified, returns the data for all agents within the license. groups (str): Group IDs separated by a comma. tags (str): Names of tags separated by a comma. customer_client_ids (str): Client IDs separated by a comma. distribution (str): Possible values: `hour`, `day-hours`, `day`, `month`; defaults to `day`. timezone (str): Timezone in the TZ format (e.g. America/Phoenix). Defaults to the requester's timezone. If not present, `from` is parsed to get the requester's timezone. tagged (bool): Possible values: `true`, `1`, `false`, `0` payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server's response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) if date_from is not None: payload['from'] = date_from if date_to is not None: payload['to'] = date_to return self.session.get( f'{self.api_url}/chats/agents_chatting_duration', params=payload, headers=headers) def tags(self, distribution: str = None, timezone: str = None, filters: dict = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Shows the distribution of tags for chats. Args: distribution (str): Allowed values: `hour`, `day`, `day-hours`, `month` or `year`. Defaults to `day`. timezone (str): IANA Time Zone (e.g. America/Phoenix). Defaults to the requester's timezone. When the requester's timezone isn't present, then `filters.from` is parsed to get the timezone. filters (dict): If none provided, your report will span the last seven days. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server's response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.get(f'{self.api_url}/chats/tags', params=payload, headers=headers) def total_chats(self, distribution: str = None, timezone: str = None, filters: dict = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Shows how many chats occurred during the specified period. Args: distribution (str): Allowed values: `hour`, `day`, `day-hours`, `month` or `year`. Defaults to `day`. timezone (str): IANA Time Zone (e.g. America/Phoenix). Defaults to the requester's timezone. When the requester's timezone isn't present, then `filters.from` is parsed to get the timezone. filters (dict): If none provided, your report will span the last seven days. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server's response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.get(f'{self.api_url}/chats/total_chats', params=payload, headers=headers)
Ancestors
- livechat.utils.http_client.HttpClient
Methods
def agents_chatting_duration(self, date_to: str = None, date_from: str = None, agents: str = None, groups: str = None, tags: str = None, customer_client_ids: str = None, distribution: str = None, timezone: str = None, tagged: bool = None, payload: dict = None, headers: dict = None) ‑> httpx.Response
-
Shows the average chatting duration of agents within a license.
Args
date_to
:str
- Date in the RFC3339 format, which also contains a timezone.
This timezone will be used if no
timezone
is provided. date_from
:str
- Date in the RFC3339 format, which also contains a timezone.
This timezone will be used if no
timezone
is provided. agents
:str
- Agent emails separated by a comma. If not specified, returns the data for all agents within the license.
groups
:str
- Group IDs separated by a comma.
tags
:str
- Names of tags separated by a comma.
customer_client_ids
:str
- Client IDs separated by a comma.
distribution
:str
- Possible values:
hour
,day-hours
,day
,month
; defaults today
. timezone
:str
- Timezone in the TZ format (e.g. America/Phoenix).
Defaults to the requester's timezone.
If not present,
from
is parsed to get the requester's timezone. tagged
:bool
- Possible values:
true
,1
,false
,0
payload
:dict
- Custom payload to be used as request's data. It overrides all other parameters provided for the method.
headers
:dict
- Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests.
Returns
httpx.Response
- The Response object from
httpx
library, which contains a server's response to an HTTP request.
Expand source code
def agents_chatting_duration(self, date_to: str = None, date_from: str = None, agents: str = None, groups: str = None, tags: str = None, customer_client_ids: str = None, distribution: str = None, timezone: str = None, tagged: bool = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Shows the average chatting duration of agents within a license. Args: date_to (str): Date in the RFC3339 format, which also contains a timezone. This timezone will be used if no `timezone` is provided. date_from (str): Date in the RFC3339 format, which also contains a timezone. This timezone will be used if no `timezone` is provided. agents (str): Agent emails separated by a comma. If not specified, returns the data for all agents within the license. groups (str): Group IDs separated by a comma. tags (str): Names of tags separated by a comma. customer_client_ids (str): Client IDs separated by a comma. distribution (str): Possible values: `hour`, `day-hours`, `day`, `month`; defaults to `day`. timezone (str): Timezone in the TZ format (e.g. America/Phoenix). Defaults to the requester's timezone. If not present, `from` is parsed to get the requester's timezone. tagged (bool): Possible values: `true`, `1`, `false`, `0` payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server's response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) if date_from is not None: payload['from'] = date_from if date_to is not None: payload['to'] = date_to return self.session.get( f'{self.api_url}/chats/agents_chatting_duration', params=payload, headers=headers)
-
Shows the distribution of tags for chats.
Args
distribution
:str
- Allowed values:
hour
,day
,day-hours
,month
oryear
. Defaults today
. timezone
:str
- IANA Time Zone (e.g. America/Phoenix).
Defaults to the requester's timezone.
When the requester's timezone isn't present, then
filters.from
is parsed to get the timezone. filters
:dict
- If none provided, your report will span the last seven days.
payload
:dict
- Custom payload to be used as request's data. It overrides all other parameters provided for the method.
headers
:dict
- Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests.
Returns
httpx.Response
- The Response object from
httpx
library, which contains a server's response to an HTTP request.
Expand source code
def tags(self, distribution: str = None, timezone: str = None, filters: dict = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Shows the distribution of tags for chats. Args: distribution (str): Allowed values: `hour`, `day`, `day-hours`, `month` or `year`. Defaults to `day`. timezone (str): IANA Time Zone (e.g. America/Phoenix). Defaults to the requester's timezone. When the requester's timezone isn't present, then `filters.from` is parsed to get the timezone. filters (dict): If none provided, your report will span the last seven days. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server's response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.get(f'{self.api_url}/chats/tags', params=payload, headers=headers)
def total_chats(self, distribution: str = None, timezone: str = None, filters: dict = None, payload: dict = None, headers: dict = None) ‑> httpx.Response
-
Shows how many chats occurred during the specified period.
Args
distribution
:str
- Allowed values:
hour
,day
,day-hours
,month
oryear
. Defaults today
. timezone
:str
- IANA Time Zone (e.g. America/Phoenix).
Defaults to the requester's timezone.
When the requester's timezone isn't present, then
filters.from
is parsed to get the timezone. filters
:dict
- If none provided, your report will span the last seven days.
payload
:dict
- Custom payload to be used as request's data. It overrides all other parameters provided for the method.
headers
:dict
- Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests.
Returns
httpx.Response
- The Response object from
httpx
library, which contains a server's response to an HTTP request.
Expand source code
def total_chats(self, distribution: str = None, timezone: str = None, filters: dict = None, payload: dict = None, headers: dict = None) -> httpx.Response: ''' Shows how many chats occurred during the specified period. Args: distribution (str): Allowed values: `hour`, `day`, `day-hours`, `month` or `year`. Defaults to `day`. timezone (str): IANA Time Zone (e.g. America/Phoenix). Defaults to the requester's timezone. When the requester's timezone isn't present, then `filters.from` is parsed to get the timezone. filters (dict): If none provided, your report will span the last seven days. payload (dict): Custom payload to be used as request's data. It overrides all other parameters provided for the method. headers (dict): Custom headers to be used with session headers. They will be merged with session-level values that are set, however, these method-level parameters will not be persisted across requests. Returns: httpx.Response: The Response object from `httpx` library, which contains a server's response to an HTTP request. ''' if payload is None: payload = prepare_payload(locals()) return self.session.get(f'{self.api_url}/chats/total_chats', params=payload, headers=headers)