def __execute_query()

in parquet_flask/v1/query_data_doms.py [0:0]


    def __execute_query(self, payload):
        """
        TODO: transform the results to:
        {
            "last": "url",
            "prev": "url",
            "next": "url",
            "first": "url",
            "results": ["results"],
            "total": "number
        }
        :param payload:
        :return:
        """
        is_valid, json_error = GeneralUtils.is_json_valid(payload, QUERY_PROPS_SCHEMA)
        if not is_valid:
            return {'message': 'invalid request body', 'details': str(json_error)}, 400
        try:
            query = QueryV4(QueryProps().from_json(payload))
            result_set = query.search()
            LOGGER.debug(f'search params: {payload}b')
            page_info = self.__calculate_4_ranges(result_set['total'])
            result_set['last'] = f'{request.base_url}?{self.__replace_start_from(page_info["last"])}'
            result_set['first'] = f'{request.base_url}?{self.__replace_start_from(page_info["first"])}'
            result_set['next'] = f'{request.base_url}?{self.__replace_start_from(page_info["next"])}'
            result_set['prev'] = f'{request.base_url}?{self.__replace_start_from(page_info["prev"])}'
            return result_set, 200
        except Exception as e:
            LOGGER.exception(f'failed to query parquet. cause: {str(e)}')
            return {'message': 'failed to query parquet', 'details': str(e)}, 500