aboutsummaryrefslogtreecommitdiffstats
path: root/backend/route.py
blob: d778bf08c0d611f80c77b2483d2dba092b74c814 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
"""
Base class for implementing dynamic routing.
"""
from starlette.endpoints import HTTPEndpoint


class Route(HTTPEndpoint):
    name: str
    path: str

    @classmethod
    def check_parameters(cls) -> None:
        if not hasattr(cls, "name"):
            raise ValueError(f"Route {cls.__name__} has not defined a name")

        if not hasattr(cls, "path"):
            raise ValueError(f"Route {cls.__name__} has not defined a path")