from .base import CallType, TSEndpoint
from .decorators import authenticate
from .models.audience_list import AudienceList
from .mocks import audience_data
from .constants import TS, AUD, LIST, COUNT
[docs]
class Audience(TSEndpoint):
[docs]
@authenticate
async def get(self) -> AudienceList:
response = await self._send_request(
f"{TS}/{AUD}", CallType.GET, mock_response=self.mock_get_audiences
)
return AudienceList.from_list(response.json())
@property
def mock_get_audiences(self) -> dict:
return audience_data.get_audience_list_mock()
[docs]
@authenticate
async def get_users(self, audience_id: str) -> list[int]:
response = await self._send_request(
f"{TS}/{AUD}/{audience_id}/{LIST}",
CallType.GET,
mock_response=self.mock_audience_users,
)
return response.json()
@property
def mock_audience_users(self) -> list[int]:
return audience_data.get_audience_users_mock()
[docs]
@authenticate
async def get_count(self, audience_id: str) -> int:
response = await self._send_request(
f"{TS}/{AUD}/{audience_id}/{COUNT}",
CallType.GET,
mock_response=self.mock_audience_count,
)
return int(response.text)
@property
def mock_audience_count(self) -> int:
return audience_data.get_audience_users_count_mock()