37 lines
1.2 KiB
Python
37 lines
1.2 KiB
Python
import datetime
|
|
|
|
from crc.api.common import ApiError
|
|
from crc.scripts.script import Script
|
|
|
|
import dateparser
|
|
import pytz
|
|
|
|
|
|
class GetLocaltime(Script):
|
|
|
|
def get_description(self):
|
|
return """Converts a UTC Datetime object into a Datetime object with a different timezone.
|
|
Defaults to US/Eastern"""
|
|
|
|
def do_task_validate_only(self, task, study_id, workflow_id, *args, **kwargs):
|
|
if 'timestamp' in kwargs:
|
|
return datetime.datetime.now()
|
|
raise ApiError(code='missing_timestamp',
|
|
message='You must include a timestamp to convert.')
|
|
|
|
def do_task(self, task, study_id, workflow_id, *args, **kwargs):
|
|
if 'timestamp' in kwargs:
|
|
timestamp = kwargs['timestamp']
|
|
if 'timezone' in kwargs:
|
|
timezone = kwargs['timezone']
|
|
else:
|
|
timezone = 'US/Eastern'
|
|
parsed_timestamp = dateparser.parse(timestamp)
|
|
localtime = parsed_timestamp.astimezone(pytz.timezone(timezone))
|
|
return localtime
|
|
|
|
else:
|
|
raise ApiError(code='missing_timestamp',
|
|
message='You must include a timestamp to convert.')
|
|
|