diff options
Diffstat (limited to 'kennel/kennelcats.py')
| -rw-r--r-- | kennel/kennelcats.py | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/kennel/kennelcats.py b/kennel/kennelcats.py new file mode 100644 index 0000000..340b07e --- /dev/null +++ b/kennel/kennelcats.py @@ -0,0 +1,45 @@ +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, endpoint: str): + self.endpoint = endpoint + + def get_kennel(self) -> List[KennelCat]: + response = requests.get(f"{self.endpoint}/kennel") + response.raise_for_status() + return [KennelCat.from_dict(cat) for cat in response.json()] |
