# generated by update to not change manually
import typing as t
from bungieapi.base import BaseClient
from bungieapi.forge import forge
from bungieapi.generated.components.responses import (
SearchResultOfFireteamClientResponse,
SearchResultOfFireteamSummaryClientResponse,
int32ClientResponse,
)
from bungieapi.generated.components.responses.fireteam import FireteamClientResponse
from bungieapi.generated.components.schemas.fireteam import (
FireteamDateRange,
FireteamPlatform,
FireteamPublicSearchOption,
FireteamSlotSearch,
)
[docs]class Client(BaseClient):
[docs] async def get_active_private_clan_fireteam_count(
self,
group_id: t.Optional[int] = None,
) -> int32ClientResponse:
"""Gets a count of all active non-public fireteams for the specified
clan.
Maximum value returned is 25.
Parameters:
group_id: The group id of the clan.
"""
query = None
result = await self.get(
path=f"/Fireteam/Clan/{group_id}/ActiveCount/",
query=query,
)
return forge(int32ClientResponse, result)
[docs] async def get_available_clan_fireteams(
self,
activity_type: t.Optional[int] = None,
date_range: t.Optional["FireteamDateRange"] = None,
group_id: t.Optional[int] = None,
lang_filter: t.Optional[str] = None,
page: t.Optional[int] = None,
platform: t.Optional["FireteamPlatform"] = None,
public_only: t.Optional["FireteamPublicSearchOption"] = None,
slot_filter: t.Optional["FireteamSlotSearch"] = None,
) -> SearchResultOfFireteamSummaryClientResponse:
"""Gets a listing of all of this clan's fireteams that are have
available slots.
Caller is not checked for join criteria so caching is maximized.
Parameters:
activity_type: The activity type to filter by.
date_range: The date range to grab available fireteams.
group_id: The group id of the clan.
lang_filter: An optional language filter.
page: Zero based page
platform: The platform filter.
public_only: Determines public/private filtering.
slot_filter: Filters based on available slots
"""
query = {"langFilter": lang_filter}
result = await self.get(
path=f"/Fireteam/Clan/{group_id}/Available/{platform}/{activity_type}/{date_range}/{slot_filter}/{public_only}/{page}/",
query=query,
)
return forge(SearchResultOfFireteamSummaryClientResponse, result)
[docs] async def search_public_available_clan_fireteams(
self,
activity_type: t.Optional[int] = None,
date_range: t.Optional["FireteamDateRange"] = None,
lang_filter: t.Optional[str] = None,
page: t.Optional[int] = None,
platform: t.Optional["FireteamPlatform"] = None,
slot_filter: t.Optional["FireteamSlotSearch"] = None,
) -> SearchResultOfFireteamSummaryClientResponse:
"""Gets a listing of all public fireteams starting now with open slots.
Caller is not checked for join criteria so caching is maximized.
Parameters:
activity_type: The activity type to filter by.
date_range: The date range to grab available fireteams.
lang_filter: An optional language filter.
page: Zero based page
platform: The platform filter.
slot_filter: Filters based on available slots
"""
query = {"langFilter": lang_filter}
result = await self.get(
path=f"/Fireteam/Search/Available/{platform}/{activity_type}/{date_range}/{slot_filter}/{page}/",
query=query,
)
return forge(SearchResultOfFireteamSummaryClientResponse, result)
[docs] async def get_my_clan_fireteams(
self,
group_filter: t.Optional[bool] = None,
group_id: t.Optional[int] = None,
include_closed: t.Optional[bool] = None,
lang_filter: t.Optional[str] = None,
page: t.Optional[int] = None,
platform: t.Optional["FireteamPlatform"] = None,
) -> SearchResultOfFireteamClientResponse:
"""Gets a listing of all fireteams that caller is an applicant, a
member, or an alternate of.
Parameters:
group_filter: If true, filter by clan. Otherwise, ignore the clan and show all of the user's fireteams.
group_id: The group id of the clan. (This parameter is ignored unless the optional query parameter groupFilter is true).
include_closed: If true, return fireteams that have been closed.
lang_filter: An optional language filter.
page: Deprecated parameter, ignored.
platform: The platform filter.
"""
query = {"groupFilter": group_filter, "langFilter": lang_filter}
result = await self.get(
path=f"/Fireteam/Clan/{group_id}/My/{platform}/{include_closed}/{page}/",
query=query,
)
return forge(SearchResultOfFireteamClientResponse, result)
[docs] async def get_clan_fireteam(
self,
fireteam_id: t.Optional[int] = None,
group_id: t.Optional[int] = None,
) -> FireteamClientResponse:
"""Gets a specific fireteam.
Parameters:
fireteam_id: The unique id of the fireteam.
group_id: The group id of the clan.
"""
query = None
result = await self.get(
path=f"/Fireteam/Clan/{group_id}/Summary/{fireteam_id}/",
query=query,
)
return forge(FireteamClientResponse, result)