|
@@ -1,4 +1,5 @@
|
|
|
from glob import glob
|
|
|
+from json import dumps
|
|
|
from os import path, getcwd
|
|
|
from os.path import exists
|
|
|
from time import time
|
|
@@ -275,6 +276,37 @@ class WebServer:
|
|
|
# return default success response
|
|
|
return response()
|
|
|
|
|
|
+ @self.__flask.route('/projects/<project_identifier>/predictions', methods=['GET'])
|
|
|
+ def download_predictions(project_identifier):
|
|
|
+ # abort if project id is not valid
|
|
|
+ if project_identifier not in app_status['projects'].keys():
|
|
|
+ return make_response('project does not exist', 404)
|
|
|
+
|
|
|
+ project = app_status['projects'][project_identifier]
|
|
|
+
|
|
|
+ # create export
|
|
|
+ result = []
|
|
|
+
|
|
|
+ for data_key in project['data']:
|
|
|
+ data_obj = project['data'][data_key]
|
|
|
+ data_res = {
|
|
|
+ 'type': data_obj['type'],
|
|
|
+ 'filename': data_obj['name'] + data_obj['extension'],
|
|
|
+ 'predictions': []
|
|
|
+ }
|
|
|
+
|
|
|
+ for result_key in data_obj['predictionResults']:
|
|
|
+ result_obj = data_obj['predictionResults'][result_key]
|
|
|
+ data_res['predictions'].append(result_obj)
|
|
|
+
|
|
|
+ result.append(data_res)
|
|
|
+
|
|
|
+ # send to user
|
|
|
+ rsp = make_response(dumps(result))
|
|
|
+ rsp.headers['Content-Type'] = 'text/json;charset=UTF-8'
|
|
|
+ rsp.headers['Content-Disposition'] = 'attachment;filename=predictions.json'
|
|
|
+ return rsp
|
|
|
+
|
|
|
# finally start web server
|
|
|
host = app_status['settings']['frontend']['host']
|
|
|
port = app_status['settings']['frontend']['port']
|