progress action logic
This commit is contained in:
parent
12b57c8c0f
commit
86b0af1e17
0
chain_service/services/__init__.py
Normal file
0
chain_service/services/__init__.py
Normal file
0
chain_service/services/progress_action/__init__.py
Normal file
0
chain_service/services/progress_action/__init__.py
Normal file
9
chain_service/services/progress_action/base.py
Normal file
9
chain_service/services/progress_action/base.py
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
from abc import ABC, abstractmethod
|
||||||
|
from chain_service.database.models.progress_chain import BaseProgressAction
|
||||||
|
|
||||||
|
|
||||||
|
class BaseProgressActionService(ABC):
|
||||||
|
|
||||||
|
@abstractmethod
|
||||||
|
async def process(self, progress_action: BaseProgressAction):
|
||||||
|
pass
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
from .base import BaseProgressActionService
|
||||||
|
from chain_service.database.models.progress_chain import CommentProgressAction
|
||||||
|
|
||||||
|
|
||||||
|
class CommentProgressActionService(BaseProgressActionService):
|
||||||
|
|
||||||
|
async def process(self, progress_action: CommentProgressAction):
|
||||||
|
print("Comment service", progress_action)
|
||||||
20
chain_service/services/progress_action/factory.py
Normal file
20
chain_service/services/progress_action/factory.py
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
from chain_service.database.models.progress_chain import BaseProgressAction
|
||||||
|
|
||||||
|
from .base import BaseProgressActionService
|
||||||
|
from .wait_progress_action import WaitProgressActionService
|
||||||
|
from .comment_progress_action import CommentProgressActionService
|
||||||
|
|
||||||
|
|
||||||
|
class ProgressActionServiceFactory:
|
||||||
|
|
||||||
|
def __call__(
|
||||||
|
self, progress_action: BaseProgressAction
|
||||||
|
) -> BaseProgressActionService:
|
||||||
|
|
||||||
|
match progress_action.action_type:
|
||||||
|
|
||||||
|
case "wait":
|
||||||
|
return WaitProgressActionService()
|
||||||
|
|
||||||
|
case "comment":
|
||||||
|
return CommentProgressActionService()
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
from .base import BaseProgressActionService
|
||||||
|
from chain_service.database.models.progress_chain import WaitProgressAction
|
||||||
|
|
||||||
|
import asyncio
|
||||||
|
|
||||||
|
|
||||||
|
class WaitProgressActionService(BaseProgressActionService):
|
||||||
|
|
||||||
|
async def process(self, progress_action: WaitProgressAction):
|
||||||
|
await asyncio.sleep(progress_action.wait_for)
|
||||||
Loading…
Reference in New Issue
Block a user