24 lines
812 B
Python
24 lines
812 B
Python
"""API voor het plugin-framework: modules opvragen en aan/uit zetten."""
|
|
from rest_framework import status
|
|
from rest_framework.decorators import api_view
|
|
from rest_framework.response import Response
|
|
|
|
from . import services
|
|
|
|
|
|
@api_view(["GET"])
|
|
def module_list(request):
|
|
"""Alle modules met metadata en actuele aan/uit-status."""
|
|
services.sync_states()
|
|
return Response(services.describe_all())
|
|
|
|
|
|
@api_view(["POST"])
|
|
def module_set_state(request, key: str):
|
|
"""Zet één module aan of uit. Body: {"enabled": true|false}."""
|
|
enabled = bool(request.data.get("enabled", False))
|
|
try:
|
|
services.set_enabled(key, enabled)
|
|
except services.ModuleError as exc:
|
|
return Response({"detail": str(exc)}, status=status.HTTP_400_BAD_REQUEST)
|
|
return Response(services.describe_all())
|