From e271c87a2081376040818786d94d91692b7a6818 Mon Sep 17 00:00:00 2001 From: lebaudantoine Date: Wed, 16 Oct 2024 10:07:58 +0200 Subject: [PATCH] wip draft a mini webhook --- src/backend/core/api/demo.py | 28 ++++++++++++++++++++++++++++ src/backend/core/urls.py | 3 ++- 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 src/backend/core/api/demo.py diff --git a/src/backend/core/api/demo.py b/src/backend/core/api/demo.py new file mode 100644 index 00000000..d33f7728 --- /dev/null +++ b/src/backend/core/api/demo.py @@ -0,0 +1,28 @@ + +from rest_framework.decorators import api_view +from rest_framework.response import Response + +MINIO_BUCKET = "livekit-staging-livekit-egress" + +# todo - discuss retry policy if the webhook fail +@api_view(["POST"]) +def minio_webhook(request): + + data = request.data + + record = data["Records"][0] + s3 = record['s3'] + bucket = s3['bucket'] + bucket_name = bucket['name'] + object = s3['object'] + filename = object['key'] + + if bucket_name != MINIO_BUCKET: + return Response("Not interested in this bucket") + + if object['contentType'] != 'audio/ogg': + return Response("Not interested in this file type") + + print('file received', filename) + + return Response("") diff --git a/src/backend/core/urls.py b/src/backend/core/urls.py index f7f0c5a9..2786f58b 100644 --- a/src/backend/core/urls.py +++ b/src/backend/core/urls.py @@ -5,7 +5,7 @@ from django.urls import include, path from rest_framework.routers import DefaultRouter -from core.api import get_frontend_configuration, viewsets +from core.api import get_frontend_configuration, viewsets, demo from core.authentication.urls import urlpatterns as oidc_urls # - Main endpoints @@ -24,6 +24,7 @@ urlpatterns = [ *router.urls, *oidc_urls, path("config/", get_frontend_configuration, name="config"), + path("minio-webhook/", demo.minio_webhook, name="demo"), ] ), ),