mirror of
https://github.com/mealie-recipes/mealie.git
synced 2025-06-06 23:24:59 -04:00
53 lines
1004 B
Python
53 lines
1004 B
Python
from pydantic import UUID4
|
|
|
|
|
|
class RoutesBase:
|
|
prefix = "/api"
|
|
base = f"{prefix}/"
|
|
|
|
def __init__(self) -> None:
|
|
raise Exception("This class is not meant to be instantiated.")
|
|
|
|
@classmethod
|
|
def item(cls, item_id: int | str | UUID4) -> str:
|
|
return f"{cls.base}/{item_id}"
|
|
|
|
|
|
class RoutesFoods(RoutesBase):
|
|
base = "/api/foods"
|
|
|
|
|
|
class RoutesUnits(RoutesBase):
|
|
base = "/api/units"
|
|
|
|
|
|
class RoutesOrganizerBase(RoutesBase):
|
|
@classmethod
|
|
def slug(cls, slug: str) -> str:
|
|
return f"{cls.base}/slug/{slug}"
|
|
|
|
|
|
class RoutesTools(RoutesOrganizerBase):
|
|
base = "/api/organizers/tools"
|
|
|
|
|
|
class RoutesTags(RoutesOrganizerBase):
|
|
base = "/api/organizers/tags"
|
|
|
|
|
|
class RoutesCategory(RoutesOrganizerBase):
|
|
base = "/api/organizers/categories"
|
|
|
|
|
|
class RoutesRecipe(RoutesBase):
|
|
base = "/api/recipes"
|
|
|
|
|
|
class RoutesAdminUsers(RoutesBase):
|
|
base = "/api/admin/users"
|
|
|
|
|
|
class RoutesUsers(RoutesBase):
|
|
base = "/api/users"
|
|
self = f"{base}/self"
|