Skip to content
Snippets Groups Projects
Commit 60d0be4f authored by Samuel GAIST's avatar Samuel GAIST
Browse files

Merge branch 'fix_database_retrieval' into 'master'

Fix database retrieval

See merge request !259
parents 425aab16 9d6e4f99
No related branches found
No related tags found
1 merge request!259Fix database retrieval
Pipeline #24943 passed
......@@ -36,8 +36,6 @@ try:
except ImportError:
from urllib.parse import urlparse
import simplejson as json
from .models import Shareable
......@@ -119,7 +117,7 @@ class BaseTestCase(TestCase):
self.assertNotEqual(len(response.content), 0)
if content_type == 'application/json':
return json.loads(response.content)
return response.json()
else:
return response.content
else:
......
......@@ -98,17 +98,16 @@ def database_to_json(database, request_user, fields_to_return,
def clean_paths(declaration):
pseudo_path = '/path_to_db_folder'
json_data = json.loads(declaration)
root_folder = json_data['root_folder']
root_folder = declaration['root_folder']
cleaned_folder = os.path.basename(os.path.normpath(root_folder))
json_data['root_folder'] = os.path.join(pseudo_path, cleaned_folder)
for protocol in json_data['protocols']:
declaration['root_folder'] = os.path.join(pseudo_path, cleaned_folder)
for protocol in declaration['protocols']:
for set_ in protocol['sets']:
if 'parameters' in set_ and 'annotations' in set_['parameters']:
annotations_folder = set_['parameters']['annotations']
cleaned_folder = annotations_folder.split('/')[-2:]
set_['parameters']['annotations'] = os.path.join(pseudo_path, *cleaned_folder)
return json.dumps(json_data)
return declaration
#----------------------------------------------------------
......@@ -240,21 +239,20 @@ class RetrieveDatabaseView(views.APIView):
result = database_to_json(database, request.user, fields_to_return,
last_version=last_version)
# Retrieve the code
if 'declaration' in fields_to_return:
try:
declaration = database.declaration_file.read()
declaration = database.declaration
except:
logger.error(traceback.format_exc())
return HttpResponse(status=500)
result['declaration'] = clean_paths(declaration)
cleaned_declaration = clean_paths(declaration)
result['declaration'] = json.dumps(cleaned_declaration)
# Retrieve the source code
if 'code' in fields_to_return:
try:
result['code'] = database.source_code_file.read()
result['code'] = database.source_code
except:
logger.error(traceback.format_exc())
return HttpResponse(status=500)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment