def from_datastore_entity(cls, doc: DatastoreEntity) -> "TaskDataModel": return cls( key=doc.key, name=doc["name"], project_key=doc.get("project_key"), finished_at=cls.convert_optional_datetime(doc.get("finished_at")), created_at=cls.convert_datetime(doc["created_at"]), update_at=cls.convert_datetime( doc.get("updated_at", doc["created_at"])), )
def to_entity(self, doc: DatastoreEntity) -> GumoTask: key = self.entity_key_mapper.to_entity_key(doc.key) if 'payload_str' in doc: payload = json.loads(doc.get('payload_str')) else: payload = doc.get('payload', {}) headers = {} if 'headers' in doc: headers = json.loads(doc.get('headers')) routing = TaskAppEngineRouting( service=doc.get('app_engine_routing.service'), version=doc.get('app_engine_routing.version'), instance=doc.get('app_engine_routing.instance'), ) return GumoTask( key=key, relative_uri=doc.get('relative_uri', doc.get('url')), method=doc.get('method'), payload=payload, headers=headers, schedule_time=self.convert_datetime(doc.get('schedule_time')), created_at=self.convert_datetime(doc.get('created_at')), queue_name=doc.get('queue_name'), app_engine_routing=routing, )
def to_entity(self, datastore_entity: DatastoreEntity) -> GumoTaskProcess: key = self._entity_key_mapper.to_entity_key(datastore_entity.key) return GumoTaskProcess( key=key, relative_uri=datastore_entity.get('relative_uri'), method=datastore_entity.get('method'), payload=datastore_entity.get('payload'), headers=datastore_entity.get('headers'), schedule_time=datastore_entity.get('schedule_time'), created_at=datastore_entity.get('created_at'), updated_at=datastore_entity.get('updated_at'), queue_name=datastore_entity.get('queue_name'), state=TaskState.get(datastore_entity.get('state')), attempts=datastore_entity.get('attempts'), last_run_at=datastore_entity.get('last_run_at'), run_at=datastore_entity.get('run_at'), locked_at=datastore_entity.get('locked_at'), succeeded_at=datastore_entity.get('succeeded_at'), failed_at=datastore_entity.get('failed_at'), histories=[ self._process_history_mapper.to_entity(history) for history in datastore_entity.get('histories') ], )