aboutsummaryrefslogtreecommitdiff
path: root/kennel/kennelcats.py
diff options
context:
space:
mode:
Diffstat (limited to 'kennel/kennelcats.py')
-rw-r--r--kennel/kennelcats.py45
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()]