diff --git a/api/dao/containerutil.py b/api/dao/containerutil.py index 312b784b8a345f1b567cfb8181f6135a54430ca9..fe1d0580c30abd55325fb71268995f2f459801dc 100644 --- a/api/dao/containerutil.py +++ b/api/dao/containerutil.py @@ -2,7 +2,6 @@ import bson.objectid from .. import config from ..auth import INTEGER_ROLES -from ..validators import InputValidationException CONT_TYPES = ['acquisition', 'analysis', 'collection', 'group', 'project', 'session'] SINGULAR_TO_PLURAL = { @@ -202,11 +201,11 @@ def pluralize(cont_name): return SINGULAR_TO_PLURAL[cont_name] elif cont_name in PLURAL_TO_SINGULAR: return cont_name - raise InputValidationException('Could not pluralize unknown container name {}'.format(cont_name)) + raise ValueError('Could not pluralize unknown container name {}'.format(cont_name)) def singularize(cont_name): if cont_name in PLURAL_TO_SINGULAR: return PLURAL_TO_SINGULAR[cont_name] elif cont_name in SINGULAR_TO_PLURAL: return cont_name - raise InputValidationException('Could not singularize unknown container name {}'.format(cont_name)) + raise ValueError('Could not singularize unknown container name {}'.format(cont_name)) diff --git a/api/download.py b/api/download.py index 5487c87ee412faad0953c177f78cc6ff3f65a95c..9259af1b3b111bb11dacd6737f895fb9401fc79e 100644 --- a/api/download.py +++ b/api/download.py @@ -86,12 +86,16 @@ class Download(base.RequestHandler): targets = [] for fref in file_refs: - cont_name = pluralize(fref.get('container_name','')) + cont_id = fref.get('container_id', '') filename = fref.get('filename', '') + cont_name = fref.get('container_name','') - if cont_name not in ['projects', 'sessions', 'acquisitions', 'analyses']: + if cont_name not in ['project', 'session', 'acquisition', 'analysis']: self.abort(400, 'Bulk download only supports files in projects, sessions, analyses and acquisitions') + cont_name = pluralize(fref.get('container_name','')) + + file_obj = None try: # Try to find the file reference in the database (filtering on user permissions)