From 779637d52b5a0d5bf0f414fc3c6bad56dc843cfd Mon Sep 17 00:00:00 2001 From: Tobias Eidelpes Date: Mon, 3 May 2021 12:07:54 +0200 Subject: [PATCH] Add backend routing for feed updates --- backend/app_be/urls.py | 3 ++- backend/app_be/views/rest_api.py | 20 +++++++++++++++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/backend/app_be/urls.py b/backend/app_be/urls.py index 5d662bb..02149eb 100644 --- a/backend/app_be/urls.py +++ b/backend/app_be/urls.py @@ -23,7 +23,8 @@ urlpatterns = [ path('admin/', admin.site.urls), url(r'^api/login', LoginClass.login), url(r'^getSixTweets', TwitterClass.getLastSixTweets), - url(r'^getTwelveTweets', TwitterClass.getLastSixTweets) + url(r'^getTwelveTweets', TwitterClass.getLastSixTweets), + url(r'feeds/', FeedViewSet.update_feed) ] router = DefaultRouter() diff --git a/backend/app_be/views/rest_api.py b/backend/app_be/views/rest_api.py index 656e104..6721c42 100644 --- a/backend/app_be/views/rest_api.py +++ b/backend/app_be/views/rest_api.py @@ -1,6 +1,6 @@ import logging -from django.http import JsonResponse +from django.http import JsonResponse, HttpRequest from py_jwt_validator import PyJwtValidator, PyJwtException @@ -68,3 +68,21 @@ class TwitterClass: class FeedViewSet(ModelViewSet): queryset = Feed.objects.all() serializer_class = FeedSerializer + + @staticmethod + @api_view(['PUT']) + def update_feed(request: HttpRequest, feed_id): + logger.debug('update_feed called for feed %d', feed_id) + feed_instance = Feed.objects.get(pk=feed_id) + if 'url' in request.data: + feed_instance.url = request.data['url'] + if 'active' in request.data: + feed_instance.active = request.data['active'] + if 'icon' in request.data: + feed_instance.icon = request.FILES['icon'] + if 'keywords' in request.data: + feed_instance.keywords = request.data['keywords'] + if 'match_all_keywords' in request.data: + feed_instance.match_all_keywords = request.data['match_all_keywords'] + feed_instance.save() + return JsonResponse(status=200, data={})