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