2021-04-26 09:41:14 -04:00
|
|
|
from crc.api.common import ApiError
|
2021-06-02 10:00:55 -04:00
|
|
|
from crc.services.data_store_service import DataStoreBase
|
2021-04-26 09:41:14 -04:00
|
|
|
from crc.scripts.script import Script
|
|
|
|
|
|
|
|
|
|
|
|
class FileDataGet(Script, DataStoreBase):
|
|
|
|
def get_description(self):
|
2022-03-25 10:03:12 -04:00
|
|
|
return """Gets user data from the data store - takes two keyword arguments arguments: 'file_id' and 'key' """
|
2021-04-26 09:41:14 -04:00
|
|
|
|
|
|
|
def do_task_validate_only(self, task, study_id, workflow_id, *args, **kwargs):
|
2022-03-25 10:03:12 -04:00
|
|
|
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
|
2021-04-26 09:41:14 -04:00
|
|
|
|
2022-03-25 10:03:12 -04:00
|
|
|
@staticmethod
|
|
|
|
def validate_kw_args(**kwargs):
|
|
|
|
if kwargs.get('key', None) is None:
|
2021-04-26 09:41:14 -04:00
|
|
|
raise ApiError(code="missing_argument",
|
2022-03-25 10:03:12 -04:00
|
|
|
message=f"The 'file_data_get' script requires a keyword argument of 'key'")
|
2021-04-26 09:41:14 -04:00
|
|
|
|
2022-03-25 10:03:12 -04:00
|
|
|
if kwargs.get('file_id', None) is None:
|
2021-04-26 09:41:14 -04:00
|
|
|
raise ApiError(code="missing_argument",
|
2022-03-25 10:03:12 -04:00
|
|
|
message=f"The 'file_data_get' script requires a keyword argument of 'file_id'")
|
2021-04-26 09:41:14 -04:00
|
|
|
return True
|
|
|
|
|
|
|
|
def do_task(self, task, study_id, workflow_id, *args, **kwargs):
|
2022-03-25 10:03:12 -04:00
|
|
|
self.validate_kw_args(**kwargs)
|
|
|
|
my_args = [kwargs['key']]
|
2021-04-30 10:11:50 -04:00
|
|
|
if 'default' in kwargs.keys():
|
2022-03-25 10:03:12 -04:00
|
|
|
my_args.append(kwargs['default'])
|
2021-04-26 09:41:14 -04:00
|
|
|
|
|
|
|
return self.get_data_common(None,
|
|
|
|
None,
|
|
|
|
'file_data_get',
|
|
|
|
kwargs['file_id'],
|
2022-03-25 10:03:12 -04:00
|
|
|
*my_args)
|