Modify scripts to use the changes in data_store_service validate methods
Make sure we return values in the validate methods Minor cleanup
This commit is contained in:
parent
8c88de35cd
commit
5229cf457e
|
@ -1,5 +1,3 @@
|
|||
from flask import g
|
||||
|
||||
from crc.api.common import ApiError
|
||||
from crc.services.data_store_service import DataStoreBase
|
||||
from crc.scripts.script import Script
|
||||
|
@ -7,32 +5,35 @@ from crc.scripts.script import Script
|
|||
|
||||
class FileDataGet(Script, DataStoreBase):
|
||||
def get_description(self):
|
||||
return """Gets user data from the data store - takes only two keyword arguments arguments: 'file_id' and 'key' """
|
||||
return """Gets user data from the data store - takes two keyword arguments arguments: 'file_id' and 'key' """
|
||||
|
||||
def do_task_validate_only(self, task, study_id, workflow_id, *args, **kwargs):
|
||||
if self.validate_kw_args(**kwargs):
|
||||
myargs = [kwargs['key']]
|
||||
return True
|
||||
self.validate_kw_args(**kwargs)
|
||||
my_args = [kwargs['key']]
|
||||
if 'default' in kwargs.keys():
|
||||
my_args.append(kwargs['default'])
|
||||
result = self.get_validate_common('file_data_get', None, None, kwargs['file_id'], *my_args)
|
||||
return result
|
||||
|
||||
def validate_kw_args(self,**kwargs):
|
||||
if kwargs.get('key',None) is None:
|
||||
@staticmethod
|
||||
def validate_kw_args(**kwargs):
|
||||
if kwargs.get('key', None) is None:
|
||||
raise ApiError(code="missing_argument",
|
||||
message=f"The 'file_data_get' script requires a keyword argument of 'key'")
|
||||
message=f"The 'file_data_get' script requires a keyword argument of 'key'")
|
||||
|
||||
if kwargs.get('file_id',None) is None:
|
||||
if kwargs.get('file_id', None) is None:
|
||||
raise ApiError(code="missing_argument",
|
||||
message=f"The 'file_data_get' script requires a keyword argument of 'file_id'")
|
||||
message=f"The 'file_data_get' script requires a keyword argument of 'file_id'")
|
||||
return True
|
||||
|
||||
|
||||
def do_task(self, task, study_id, workflow_id, *args, **kwargs):
|
||||
if self.validate_kw_args(**kwargs):
|
||||
myargs = [kwargs['key']]
|
||||
self.validate_kw_args(**kwargs)
|
||||
my_args = [kwargs['key']]
|
||||
if 'default' in kwargs.keys():
|
||||
myargs.append(kwargs['default'])
|
||||
my_args.append(kwargs['default'])
|
||||
|
||||
return self.get_data_common(None,
|
||||
None,
|
||||
'file_data_get',
|
||||
kwargs['file_id'],
|
||||
*myargs)
|
||||
*my_args)
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
from flask import g
|
||||
|
||||
from crc.api.common import ApiError
|
||||
from crc.services.data_store_service import DataStoreBase
|
||||
from crc.scripts.script import Script
|
||||
|
@ -9,16 +7,23 @@ from crc.services.user_file_service import UserFileService
|
|||
|
||||
class FileDataSet(Script, DataStoreBase):
|
||||
def get_description(self):
|
||||
return """Sets data the data store - takes three keyword arguments arguments: 'file_id' and 'key' and 'value'"""
|
||||
return """Sets data the data store - takes three keyword arguments arguments: 'file_id', 'key' and 'value'"""
|
||||
|
||||
def do_task_validate_only(self, task, study_id, workflow_id, *args, **kwargs):
|
||||
if self.validate_kw_args(**kwargs):
|
||||
myargs = [kwargs['key'],kwargs['value']]
|
||||
fileid = kwargs['file_id']
|
||||
del(kwargs['file_id'])
|
||||
return True
|
||||
self.validate_kw_args(**kwargs)
|
||||
my_args = [kwargs['key'], kwargs['value']]
|
||||
file_id = kwargs['file_id']
|
||||
result = self.set_validate_common(task.id,
|
||||
study_id,
|
||||
workflow_id,
|
||||
'file_data_set',
|
||||
None,
|
||||
file_id,
|
||||
*my_args)
|
||||
return result
|
||||
|
||||
def validate_kw_args(self, **kwargs):
|
||||
@staticmethod
|
||||
def validate_kw_args(**kwargs):
|
||||
if kwargs.get('key', None) is None:
|
||||
raise ApiError(code="missing_argument",
|
||||
message=f"The 'file_data_get' script requires a keyword argument of 'key'")
|
||||
|
@ -32,28 +37,26 @@ class FileDataSet(Script, DataStoreBase):
|
|||
if kwargs['key'] == 'irb_code' and not DocumentService.is_allowed_document(kwargs.get('value')):
|
||||
raise ApiError("invalid_form_field_key",
|
||||
"When setting an irb_code, the form field id must match a known document in the "
|
||||
"irb_docunents.xslx reference file. This code is not found in that file '%s'" %
|
||||
"irb_documents.xlsx reference file. This code is not found in that file '%s'" %
|
||||
kwargs.get('value'))
|
||||
|
||||
return True
|
||||
|
||||
|
||||
def do_task(self, task, study_id, workflow_id, *args, **kwargs):
|
||||
if self.validate_kw_args(**kwargs):
|
||||
myargs = [kwargs['key'],kwargs['value']]
|
||||
self.validate_kw_args(**kwargs)
|
||||
my_args = [kwargs['key'], kwargs['value']]
|
||||
|
||||
try:
|
||||
fileid = int(kwargs['file_id'])
|
||||
except:
|
||||
except Exception:
|
||||
raise ApiError("invalid_file_id",
|
||||
"Attempting to update DataStore for an invalid fileid '%s'" % kwargs['file_id'])
|
||||
"Attempting to update DataStore for an invalid file_id '%s'" % kwargs['file_id'])
|
||||
|
||||
del(kwargs['file_id'])
|
||||
if kwargs['key'] == 'irb_code':
|
||||
irb_doc_code = kwargs['value']
|
||||
UserFileService.update_irb_code(fileid, irb_doc_code)
|
||||
|
||||
|
||||
return self.set_data_common(task.id,
|
||||
None,
|
||||
None,
|
||||
|
@ -61,6 +64,5 @@ class FileDataSet(Script, DataStoreBase):
|
|||
None,
|
||||
'file_data_set',
|
||||
fileid,
|
||||
*myargs,
|
||||
*my_args,
|
||||
**kwargs)
|
||||
|
||||
|
|
|
@ -2,16 +2,12 @@ from crc.services.data_store_service import DataStoreBase
|
|||
from crc.scripts.script import Script
|
||||
|
||||
|
||||
class StudyDataGet(Script,DataStoreBase):
|
||||
class StudyDataGet(Script, DataStoreBase):
|
||||
def get_description(self):
|
||||
return """Gets study data from the data store."""
|
||||
|
||||
def do_task_validate_only(self, task, study_id, workflow_id, *args, **kwargs):
|
||||
value = self.get_validate_common(study_id, None, 'study_data_get', None, *args)
|
||||
# return self.do_task(task, study_id, workflow_id, *args, **kwargs)
|
||||
|
||||
print('do_task_validate_only')
|
||||
return value
|
||||
return self.get_validate_common('study_data_get', study_id, None, None, *args)
|
||||
|
||||
def do_task(self, task, study_id, workflow_id, *args, **kwargs):
|
||||
return self.get_data_common(study_id,
|
||||
|
@ -19,4 +15,3 @@ class StudyDataGet(Script,DataStoreBase):
|
|||
'study_data_get',
|
||||
None,
|
||||
*args)
|
||||
|
||||
|
|
|
@ -2,17 +2,19 @@ from crc.services.data_store_service import DataStoreBase
|
|||
from crc.scripts.script import Script
|
||||
|
||||
|
||||
class StudyDataSet(Script,DataStoreBase):
|
||||
class StudyDataSet(Script, DataStoreBase):
|
||||
def get_description(self):
|
||||
return """Sets study data from the data store. Takes two positional arguments key and value"""
|
||||
|
||||
def do_task_validate_only(self, task, study_id, workflow_id, *args, **kwargs):
|
||||
self.set_validate_common(study_id,
|
||||
workflow_id,
|
||||
None,
|
||||
'study_data_set',
|
||||
None,
|
||||
*args)
|
||||
result = self.set_validate_common(task.id,
|
||||
study_id,
|
||||
workflow_id,
|
||||
'study_data_set',
|
||||
None,
|
||||
None,
|
||||
*args)
|
||||
return result
|
||||
|
||||
def do_task(self, task, study_id, workflow_id, *args, **kwargs):
|
||||
return self.set_data_common(task.id,
|
||||
|
@ -24,9 +26,3 @@ class StudyDataSet(Script,DataStoreBase):
|
|||
None,
|
||||
*args,
|
||||
**kwargs)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ class UserDataGet(Script, DataStoreBase):
|
|||
return """Gets user data from the data store - takes only one argument 'key' """
|
||||
|
||||
def do_task_validate_only(self, task, study_id, workflow_id, *args, **kwargs):
|
||||
self.do_task(task, study_id, workflow_id, *args, **kwargs)
|
||||
return self.get_validate_common('user_data_get', None, g.user.uid, None, *args)
|
||||
|
||||
def do_task(self, task, study_id, workflow_id, *args, **kwargs):
|
||||
return self.get_data_common(None,
|
||||
|
|
|
@ -4,17 +4,18 @@ from crc.services.data_store_service import DataStoreBase
|
|||
from crc.scripts.script import Script
|
||||
|
||||
|
||||
class UserDataSet(Script,DataStoreBase):
|
||||
class UserDataSet(Script, DataStoreBase):
|
||||
def get_description(self):
|
||||
return """Sets user data to the data store these are positional arguments key and value.
|
||||
example: user_data_set('mykey','myvalue')
|
||||
example: user_data_set('my_key','my_value')
|
||||
"""
|
||||
|
||||
def do_task_validate_only(self, task, study_id, workflow_id, *args, **kwargs):
|
||||
self.set_validate_common(None,
|
||||
self.set_validate_common(task.id,
|
||||
study_id,
|
||||
workflow_id,
|
||||
g.user.uid,
|
||||
'user_data_set',
|
||||
g.user.uid,
|
||||
None,
|
||||
*args)
|
||||
|
||||
|
@ -28,6 +29,3 @@ class UserDataSet(Script,DataStoreBase):
|
|||
None,
|
||||
*args,
|
||||
**kwargs)
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue