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:
mike cullerton 2022-03-25 10:03:12 -04:00
parent 8c88de35cd
commit 5229cf457e
6 changed files with 54 additions and 62 deletions

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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,

View File

@ -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)