chain-service/chain_service/services/progress_action/factory.py
2024-02-28 18:41:32 +07:00

35 lines
1.0 KiB
Python

from chain_service.database.models.progress_chain import (
ProgressChain,
BaseProgressAction,
)
from .base import BaseProgressActionService
from .wait_progress_action import WaitProgressActionService
from .comment_progress_action import CommentProgressActionService
from planfix_client import PlanfixClient
class ProgressActionServiceFactory:
def __init__(self, planfix_client: PlanfixClient):
self.planfix_client = planfix_client
def __call__(
self, progress_chain: ProgressChain, progress_action: BaseProgressAction
) -> BaseProgressActionService:
match progress_action.action_type:
case "wait":
return WaitProgressActionService(
progress_chain=progress_chain, progress_action=progress_action
)
case "comment":
return CommentProgressActionService(
planfix_client=self.planfix_client,
progress_chain=progress_chain,
progress_action=progress_action,
)