def get_conversation_analytics()

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()