Source code for masterblaster.organisation
from __future__ import annotations
import aiohttp
from .team import Team
from .member import Member
from .image import Image
BASE = "https://app.masterblaster.gg/api"
__all__ = [
"Organisation",
]
[docs]class Organisation:
def __init__(
self,
session: aiohttp.ClientSession = None,
id: str = None,
name: str = None,
members: list[dict] = None,
images: list[dict] = None,
) -> None:
self.session: aiohttp.ClientSession = session
self.id: str = id
self.name: str = name
self.members: list[Member] = [Member(**member) for member in members]
self.images: list[Image] = [Image(**image) for image in images]
def __str__(self) -> str:
return self.name
[docs] async def get_members(self):
"""
Returns members of the organization
Parameters
----------
None
Returns
-------
members: list[Member]
A list of all members in the organization
"""
r = await self.session.get(f"{BASE}/organization/{self.id}")
match r.status:
case 200:
members = await r.json()
return [Member(**member) for member in members["members"]]
case _:
raise ValueError(
f"Unable to fetch members: {self} code: {r.status} err: {await r.text()}"
)
[docs] async def get_teams(self) -> list[Team]:
"""
Returns teams of the organization
Parameters
----------
None
Returns
-------
teams: list[Team]
A list of all teams in the organization
"""
r = await self.session.get(f"{BASE}/organization/{self.id}/teams")
match r.status:
case 200:
teams = await r.json()
return [Team(self.session, **team) for team in teams]
case _:
raise ValueError(
f"Unable to fetch teams: {self} code: {r.status} err: {await r.text()}"
)
[docs] async def get_images(self) -> list[Image]:
"""
Returns images of the organization
Parameters
----------
None
Returns
-------
images: list[Image]
A list of all images in the organization
"""
r = await self.session.get(f"{BASE}/organization/{self.id}")
match r.status:
case 200:
images = await r.json()
return [Image(**image) for image in images["images"]]
case _:
raise ValueError(
f"Unable to fetch images: {self} code: {r.status} err: {await r.text()}"
)