コード例 #1
0
 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"])),
     )
コード例 #2
0
ファイル: mapper.py プロジェクト: gumo-py/gumo-task
    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,
        )
コード例 #3
0
 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')
         ],
     )