scryfall-py/scryfall/client/http/http_requests/set.py
2025-03-01 20:31:25 -07:00

54 lines
1.3 KiB
Python

from uuid import UUID
from scryfall.client.route import Route
from scryfall.models.api import APIList
from scryfall.models.sets import Set
from scryfall.models.internal.protocols import CanRequest
class SetRequests(CanRequest):
async def get_all_sets(self) -> APIList:
"""Get all MTG sets."""
result = await self.request(Route("GET", "/sets"))
result["_client"] = self
return APIList(**result)
async def get_set_by_id(self, id: str | UUID) -> Set:
"""
Get MTG set by ID.
Args:
id: UUID of set
"""
result = await self.request(Route("GET", f"/sets/{id}"))
result["_client"] = self
return Set(**result)
async def get_set_by_code(self, code: str) -> Set:
"""
Get MTG set by set code.
Args:
code: Set code
"""
result = await self.request(Route("GET", f"/sets/{code}"))
result["_client"] = self
return Set(**result)
async def get_set_by_tcgplayer_id(self, id: int) -> Set:
"""
Get MTG set by TCGPlayer ID.
Args:
id: TCGPlayer ID of set
"""
result = await self.request(Route("GET", f"/sets/tcgplayer/{id}"))
result["_client"] = self
return Set(**result)