37 lines
1.1 KiB
Python
37 lines
1.1 KiB
Python
from typing import Callable, Dict
|
|
from collections import defaultdict
|
|
from szurubooru.rest.context import Context, Response
|
|
|
|
|
|
# pylint: disable=invalid-name
|
|
RouteHandler = Callable[[Context, Dict[str, str]], Response]
|
|
routes = defaultdict(dict) # type: Dict[str, Dict[str, RouteHandler]]
|
|
|
|
|
|
def get(url: str) -> Callable[[RouteHandler], RouteHandler]:
|
|
def wrapper(handler: RouteHandler) -> RouteHandler:
|
|
routes[url]['GET'] = handler
|
|
return handler
|
|
return wrapper
|
|
|
|
|
|
def put(url: str) -> Callable[[RouteHandler], RouteHandler]:
|
|
def wrapper(handler: RouteHandler) -> RouteHandler:
|
|
routes[url]['PUT'] = handler
|
|
return handler
|
|
return wrapper
|
|
|
|
|
|
def post(url: str) -> Callable[[RouteHandler], RouteHandler]:
|
|
def wrapper(handler: RouteHandler) -> RouteHandler:
|
|
routes[url]['POST'] = handler
|
|
return handler
|
|
return wrapper
|
|
|
|
|
|
def delete(url: str) -> Callable[[RouteHandler], RouteHandler]:
|
|
def wrapper(handler: RouteHandler) -> RouteHandler:
|
|
routes[url]['DELETE'] = handler
|
|
return handler
|
|
return wrapper
|