import json from flask import Response, request from flask_restful import Resource from hub_api.config import Config from hub_api.helpers.session_helper import session, refresh_session class Meb(Resource, Config): def __init__(self): super().__init__() def post(self): """ API call for requesting a specified list of enriched buildings """ session_id = request.headers.get('session_id', None) token = request.headers.get('token', None) application_uuid = request.headers.get('application_uuid', None) _session = refresh_session(session_id, token, application_uuid) if _session is None: return Response(json.dumps({'error': 'unauthorized'}), status=403) application_id = session(session_id)['application_id'] user_id = session(session_id)['user_id'] token = {'token': _session['token']} payload = request.get_json() results = self.export_db_factory.results(user_id, application_id, payload) if results == {}: # no data found for the given parameters return Response(json.dumps({'result': 'succeed', 'results': results}), status=200, headers=token) # deserialize the response to return pure json city_name = next(iter(results)) for building_results in results[city_name]: values = [] for value in building_results['insel meb']: key = next(iter(value)) values.append({key: json.loads(value[key])}) building_results['insel meb'] = values return Response(json.dumps({'result': 'succeed', 'results': results}), status=200, headers=token)