Add backend routing for feed updates

This commit is contained in:
Tobias Eidelpes 2021-05-03 12:07:54 +02:00
parent d25e3ea7b9
commit 779637d52b
2 changed files with 21 additions and 2 deletions

View File

@ -23,7 +23,8 @@ urlpatterns = [
path('admin/', admin.site.urls), path('admin/', admin.site.urls),
url(r'^api/login', LoginClass.login), url(r'^api/login', LoginClass.login),
url(r'^getSixTweets', TwitterClass.getLastSixTweets), url(r'^getSixTweets', TwitterClass.getLastSixTweets),
url(r'^getTwelveTweets', TwitterClass.getLastSixTweets) url(r'^getTwelveTweets', TwitterClass.getLastSixTweets),
url(r'feeds/<int:feed_id>', FeedViewSet.update_feed)
] ]
router = DefaultRouter() router = DefaultRouter()

View File

@ -1,6 +1,6 @@
import logging import logging
from django.http import JsonResponse from django.http import JsonResponse, HttpRequest
from py_jwt_validator import PyJwtValidator, PyJwtException from py_jwt_validator import PyJwtValidator, PyJwtException
@ -68,3 +68,21 @@ class TwitterClass:
class FeedViewSet(ModelViewSet): class FeedViewSet(ModelViewSet):
queryset = Feed.objects.all() queryset = Feed.objects.all()
serializer_class = FeedSerializer 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={})