From 9b45187db414d85f5871ed99321197e07b98d4ac Mon Sep 17 00:00:00 2001 From: Simon Date: Fri, 8 Nov 2024 14:04:35 +0700 Subject: [PATCH] consolidate channe overwrite endpoint --- backend/channel/src/index.py | 2 +- backend/channel/urls.py | 5 ---- backend/channel/views.py | 47 ++++++++++++------------------------ 3 files changed, 16 insertions(+), 38 deletions(-) diff --git a/backend/channel/src/index.py b/backend/channel/src/index.py index 1273930e..76e96412 100644 --- a/backend/channel/src/index.py +++ b/backend/channel/src/index.py @@ -344,4 +344,4 @@ def channel_overwrites(channel_id, overwrites): channel.upload_to_es() channel.sync_to_videos() - return channel.json_data["channel_overwrites"] + return channel.json_data diff --git a/backend/channel/urls.py b/backend/channel/urls.py index 4e370d62..4b4ec53e 100644 --- a/backend/channel/urls.py +++ b/backend/channel/urls.py @@ -19,11 +19,6 @@ urlpatterns = [ views.ChannelApiView.as_view(), name="api-channel", ), - path( - "/about/", - views.ChannelApiAboutView.as_view(), - name="api-channel-view", - ), path( "/aggs/", views.ChannelAggsApiView.as_view(), diff --git a/backend/channel/views.py b/backend/channel/views.py index f7bcac15..7bb2525b 100644 --- a/backend/channel/views.py +++ b/backend/channel/views.py @@ -87,6 +87,21 @@ class ChannelApiView(ApiBaseView): self.get_document(channel_id) return Response(self.response, status=self.status_code) + def post(self, request, channel_id): + """modify channel overwrites""" + data = request.data + if not isinstance(data, dict) or not "channel_overwrites" in data: + return Response({"error": "invalid payload"}, status=400) + + overwrites = data["channel_overwrites"] + + try: + json_data = channel_overwrites(channel_id, overwrites) + except ValueError as err: + return Response({"error": str(err)}, status=400) + + return Response(json_data, status=200) + def delete(self, request, channel_id): # pylint: disable=unused-argument """delete channel""" @@ -102,38 +117,6 @@ class ChannelApiView(ApiBaseView): return Response(message, status=status_code) -class ChannelApiAboutView(ApiBaseView): - """resolves to /api/channel//about/ - GET: returns the channel specific settings - POST: sets the channel specific settings, returning current values - """ - - permission_classes = [AdminWriteOnly] - - def get(self, request, channel_id): - """get channel overwrites""" - # pylint: disable=unused-argument - channel = YoutubeChannel(channel_id) - channel.get_from_es() - if not channel.json_data: - return Response({"error": "unknown channel id"}, status=404) - - return Response(channel.get_overwrites()) - - def post(self, request, channel_id): - """modify channel overwrites""" - data = request.data - if not isinstance(data, dict): - return Response({"error": "invalid payload"}, status=400) - - try: - new_channel_overwrites = channel_overwrites(channel_id, data) - except ValueError as err: - return Response({"error": str(err)}, status=400) - - return Response(new_channel_overwrites, status=200) - - class ChannelAggsApiView(ApiBaseView): """resolves to /api/channel//aggs/ GET: get channel aggregations