aboutsummaryrefslogtreecommitdiff
path: root/kennel/kennelcats.py
blob: 970e44f2c4a19d3622fdb1e7401ebdae042302e6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
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()]