mirror of
https://gitlab.com/crafty-controller/crafty-4.git
synced 2025-01-31 12:56:11 +01:00
38 lines
1.2 KiB
Python
38 lines
1.2 KiB
Python
from typing import Awaitable, Callable, Optional
|
|
from app.classes.web.base_handler import BaseHandler
|
|
|
|
|
|
class BaseApiHandler(BaseHandler):
|
|
# {{{ Disable XSRF protection on API routes
|
|
def check_xsrf_cookie(self) -> None:
|
|
pass
|
|
|
|
# }}}
|
|
|
|
# {{{ 405 Method Not Allowed as JSON
|
|
def _unimplemented_method(self, *_args: str, **_kwargs: str) -> None:
|
|
self.finish_json(
|
|
405,
|
|
{
|
|
"status": "error",
|
|
"error": "METHOD_NOT_ALLOWED",
|
|
"error_data": "METHOD NOT ALLOWED",
|
|
},
|
|
)
|
|
|
|
head = _unimplemented_method # type: Callable[..., Optional[Awaitable[None]]]
|
|
get = _unimplemented_method # type: Callable[..., Optional[Awaitable[None]]]
|
|
post = _unimplemented_method # type: Callable[..., Optional[Awaitable[None]]]
|
|
delete = _unimplemented_method # type: Callable[..., Optional[Awaitable[None]]]
|
|
patch = _unimplemented_method # type: Callable[..., Optional[Awaitable[None]]]
|
|
put = _unimplemented_method # type: Callable[..., Optional[Awaitable[None]]]
|
|
# }}}
|
|
|
|
def options(self, *_, **__):
|
|
"""
|
|
Fix CORS
|
|
"""
|
|
# no body
|
|
self.set_status(204)
|
|
self.finish()
|