api_v1.4/hub_api/persistence/retrofit_results.py

43 lines
1.6 KiB
Python
Raw Normal View History

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
2023-07-20 20:15:24 -04:00
class RetrofitResults(Resource, Config):
def __init__(self):
super().__init__()
def post(self):
2023-03-10 10:15:20 -05:00
"""
API call for requesting a specified list of enriched persistence
2023-03-10 10:15:20 -05:00
"""
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)
token = {'token': _session['token']}
application_id = session(session_id)['application_id']
user_id = session(session_id)['user_id']
payload = request.get_json()
results = self.database.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 = []
print(building_results)
for value in building_results['insel meb']:
key = next(iter(value))
values.append({key: json.loads(str(value[key]))})
building_results['insel meb'] = values
return Response(json.dumps({'result': 'succeed', 'results': results}), status=200, headers=token)