from datetime import datetime from typing import List import requests class KennelCat: def __init__( self, id: str, user_id: str, name: str, link: str, description: str, spritesheet: str, created_at: datetime, ): self.id = id self.user_id = user_id self.name = name self.link = link self.description = description self.spritesheet = spritesheet self.created_at = created_at @staticmethod def from_dict(dict: dict) -> "KennelCat": return KennelCat( id=dict["id"], user_id=dict["user_id"], name=dict["name"], link=dict["link"], description=dict["description"], spritesheet=dict["spritesheet"], created_at=datetime.fromisoformat(dict["created_at"]), ) class KennelCatService: def __init__(self, hc_endpoint: str): self.hc_endpoint = hc_endpoint def get_kennel(self) -> List[KennelCat]: response = requests.get(f"{self.hc_endpoint}/kennel") response.raise_for_status() cats = [KennelCat.from_dict(cat) for cat in response.json()] for cat in cats: cat.spritesheet = self.hc_endpoint + cat.spritesheet return cats