mirror of
				https://github.com/mealie-recipes/mealie.git
				synced 2025-10-30 17:53:31 -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"
 |