add campaign api (#274)
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
"""Campaign resource client using TypedDict shapes (no Pydantic)."""
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import Any, Dict, Optional, Tuple
|
||||
|
||||
from .types import (
|
||||
APIError,
|
||||
Campaign,
|
||||
CampaignCreate,
|
||||
CampaignCreateResponse,
|
||||
CampaignSchedule,
|
||||
CampaignScheduleResponse,
|
||||
CampaignActionResponse,
|
||||
)
|
||||
|
||||
|
||||
class Campaigns:
|
||||
"""Client for `/campaigns` endpoints."""
|
||||
|
||||
def __init__(self, usesend: "UseSend") -> None:
|
||||
self.usesend = usesend
|
||||
|
||||
def create(
|
||||
self, payload: CampaignCreate
|
||||
) -> Tuple[Optional[CampaignCreateResponse], Optional[APIError]]:
|
||||
data, err = self.usesend.post(
|
||||
"/campaigns",
|
||||
payload,
|
||||
)
|
||||
return (data, err) # type: ignore[return-value]
|
||||
|
||||
def get(
|
||||
self, campaign_id: str
|
||||
) -> Tuple[Optional[Campaign], Optional[APIError]]:
|
||||
data, err = self.usesend.get(
|
||||
f"/campaigns/{campaign_id}"
|
||||
)
|
||||
return (data, err) # type: ignore[return-value]
|
||||
|
||||
def schedule(
|
||||
self, campaign_id: str, payload: CampaignSchedule
|
||||
) -> Tuple[Optional[CampaignScheduleResponse], Optional[APIError]]:
|
||||
data, err = self.usesend.post(
|
||||
f"/campaigns/{campaign_id}/schedule",
|
||||
payload,
|
||||
)
|
||||
return (data, err) # type: ignore[return-value]
|
||||
|
||||
def pause(
|
||||
self, campaign_id: str
|
||||
) -> Tuple[Optional[CampaignActionResponse], Optional[APIError]]:
|
||||
data, err = self.usesend.post(
|
||||
f"/campaigns/{campaign_id}/pause",
|
||||
{},
|
||||
)
|
||||
return (data, err) # type: ignore[return-value]
|
||||
|
||||
def resume(
|
||||
self, campaign_id: str
|
||||
) -> Tuple[Optional[CampaignActionResponse], Optional[APIError]]:
|
||||
data, err = self.usesend.post(
|
||||
f"/campaigns/{campaign_id}/resume",
|
||||
{},
|
||||
)
|
||||
return (data, err) # type: ignore[return-value]
|
||||
|
||||
|
||||
from .usesend import UseSend # noqa: E402 pylint: disable=wrong-import-position
|
||||
Reference in New Issue
Block a user