mirror of
https://github.com/dograh-hq/dograh.git
synced 2026-06-07 07:55:16 +02:00
feat: add retry config during campaign creation
This commit is contained in:
parent
db75d90535
commit
6f41e91f67
14 changed files with 1036 additions and 221 deletions
|
|
@ -17,9 +17,16 @@ class CampaignClient(BaseDBClient):
|
|||
source_id: str,
|
||||
user_id: int,
|
||||
organization_id: int,
|
||||
retry_config: Optional[dict] = None,
|
||||
max_concurrency: Optional[int] = None,
|
||||
) -> CampaignModel:
|
||||
"""Create a new campaign"""
|
||||
async with self.async_session() as session:
|
||||
# Build orchestrator_metadata with max_concurrency if provided
|
||||
orchestrator_metadata = {}
|
||||
if max_concurrency is not None:
|
||||
orchestrator_metadata["max_concurrency"] = max_concurrency
|
||||
|
||||
campaign = CampaignModel(
|
||||
name=name,
|
||||
workflow_id=workflow_id,
|
||||
|
|
@ -27,6 +34,10 @@ class CampaignClient(BaseDBClient):
|
|||
source_id=source_id,
|
||||
created_by=user_id,
|
||||
organization_id=organization_id,
|
||||
retry_config=retry_config
|
||||
if retry_config
|
||||
else CampaignModel.retry_config.default.arg,
|
||||
orchestrator_metadata=orchestrator_metadata,
|
||||
)
|
||||
session.add(campaign)
|
||||
try:
|
||||
|
|
|
|||
|
|
@ -22,6 +22,8 @@ from sqlalchemy import (
|
|||
)
|
||||
from sqlalchemy.orm import declarative_base, relationship
|
||||
|
||||
from api.constants import DEFAULT_CAMPAIGN_RETRY_CONFIG
|
||||
|
||||
from ..enums import (
|
||||
CallType,
|
||||
IntegrationAction,
|
||||
|
|
@ -537,14 +539,7 @@ class CampaignModel(Base):
|
|||
retry_config = Column(
|
||||
JSON,
|
||||
nullable=False,
|
||||
default={
|
||||
"enabled": True,
|
||||
"max_retries": 2,
|
||||
"retry_delay_seconds": 120,
|
||||
"retry_on_busy": True,
|
||||
"retry_on_no_answer": True,
|
||||
"retry_on_voicemail": True,
|
||||
},
|
||||
default=DEFAULT_CAMPAIGN_RETRY_CONFIG,
|
||||
server_default=text(
|
||||
'\'{"enabled": true, "max_retries": 2, "retry_on_busy": true, "retry_on_no_answer": true, "retry_on_voicemail": true, "retry_delay_seconds": 120}\'::jsonb'
|
||||
),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue