in facebook_business/adobjects/whatsappbusinessaccount.py [0:0]
def get_conversation_analytics(self, fields=None, params=None, batch=None, success=None, failure=None, pending=False):
from facebook_business.utils import api_utils
if batch is None and (success is not None or failure is not None):
api_utils.warning('`success` and `failure` callback only work for batch call.')
param_types = {
'conversation_directions': 'list<conversation_directions_enum>',
'conversation_types': 'list<conversation_types_enum>',
'country_codes': 'list<string>',
'dimensions': 'list<dimensions_enum>',
'end': 'unsigned int',
'granularity': 'granularity_enum',
'metric_types': 'list<metric_types_enum>',
'phone_numbers': 'list<string>',
'start': 'unsigned int',
}
enums = {
'conversation_directions_enum': [
'BUSINESS_INITIATED',
'UNKNOWN',
'USER_INITIATED',
],
'conversation_types_enum': [
'FREE_ENTRY_POINT',
'FREE_TIER',
'REGULAR',
'UNKNOWN',
],
'dimensions_enum': [
'CONVERSATION_DIRECTION',
'CONVERSATION_TYPE',
'COUNTRY',
'PHONE',
'UNKNOWN',
],
'granularity_enum': [
'DAILY',
'HALF_HOUR',
'MONTHLY',
],
'metric_types_enum': [
'CONVERSATION',
'COST',
'UNKNOWN',
],
}
request = FacebookRequest(
node_id=self['id'],
method='GET',
endpoint='/conversation_analytics',
api=self._api,
param_checker=TypeChecker(param_types, enums),
target_class=AbstractCrudObject,
api_type='EDGE',
response_parser=ObjectParser(target_class=AbstractCrudObject, api=self._api),
)
request.add_params(params)
request.add_fields(fields)
if batch is not None:
request.add_to_batch(batch, success=success, failure=failure)
return request
elif pending:
return request
else:
self.assure_call()
return request.execute()