import sanic
from caspia.homeserver.authorization import authorized
from caspia.homeserver.services import MeadowService, TileService, UserService, WallService
[docs]class View(sanic.views.HTTPMethodView):
decorators = [authorized()]
def __init__(self, services, loop):
self.services = services
self.loop = loop
@property
def meadow_service(self) -> MeadowService:
return self.services[MeadowService]
@property
def wall_service(self) -> WallService:
return self.services[WallService]
@property
def tile_service(self) -> TileService:
return self.services[TileService]
@property
def user_service(self) -> UserService:
return self.services[UserService]
[docs] def error_response(self, status, message):
return sanic.response.json(body={'message': message}, status=status)
[docs] def options(self, request, *args, **kwargs):
return sanic.response.raw(b'', status=204)