From 2b884e410cbfb15c5e2467fe49f7f67ada492007 Mon Sep 17 00:00:00 2001 From: lebaudantoine Date: Fri, 12 Sep 2025 15:21:03 +0200 Subject: [PATCH] wip add viewset --- src/backend/core/api/permissions.py | 6 +++++- src/backend/core/api/viewsets.py | 18 ++++++++++++++++++ src/backend/core/urls.py | 1 + 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src/backend/core/api/permissions.py b/src/backend/core/api/permissions.py index ce1f1934..1b0a881b 100644 --- a/src/backend/core/api/permissions.py +++ b/src/backend/core/api/permissions.py @@ -1,8 +1,9 @@ """Permission handlers for the Meet core app.""" from rest_framework import permissions +from rest_framework_api_key.permissions import BaseHasAPIKey -from ..models import RoleChoices +from ..models import RoleChoices, ServiceAccountAPIKey ACTION_FOR_METHOD_TO_PERMISSION = { "versions_detail": {"DELETE": "versions_destroy", "GET": "versions_retrieve"} @@ -106,3 +107,6 @@ class HasLiveKitRoomAccess(permissions.BasePermission): if not request.auth or not hasattr(request.auth, "video"): return False return request.auth.video.room == str(obj.id) + +class HasServiceAccountAPIKey(BaseHasAPIKey): + model = ServiceAccountAPIKey diff --git a/src/backend/core/api/viewsets.py b/src/backend/core/api/viewsets.py index 55578e9e..06ba176e 100644 --- a/src/backend/core/api/viewsets.py +++ b/src/backend/core/api/viewsets.py @@ -863,3 +863,21 @@ class RecordingViewSet( request = utils.generate_s3_authorization_headers(recording.key) return drf_response.Response("authorized", headers=request.headers, status=200) + +class WipViewSet(viewsets.GenericViewSet): + """Wip.""" + + permission_classes = [permissions.HasServiceAccountAPIKey] + + @decorators.action( + detail=False, + methods=["get"], + url_path="ping", + url_name="ping", + ) + def ping(self, request, *args, **kwargs): + """Wip.""" + return drf_response.Response( + {"message": "pong"}, + status=drf_status.HTTP_200_OK, + ) diff --git a/src/backend/core/urls.py b/src/backend/core/urls.py index 98969f18..f98b4808 100644 --- a/src/backend/core/urls.py +++ b/src/backend/core/urls.py @@ -12,6 +12,7 @@ from core.api import get_frontend_configuration, viewsets router = DefaultRouter() router.register("users", viewsets.UserViewSet, basename="users") router.register("rooms", viewsets.RoomViewSet, basename="rooms") +router.register("wip", viewsets.WipViewSet, basename="wip") router.register("recordings", viewsets.RecordingViewSet, basename="recordings") router.register( "resource-accesses", viewsets.ResourceAccessViewSet, basename="resource_accesses"