2021-05-04 22:27:25 +02:00

61 lines
1.8 KiB
Python

import logging
from app_be.views.twitter_api import twitter_api
from django.http import JsonResponse, HttpRequest
from py_jwt_validator import PyJwtValidator, PyJwtException
from rest_framework.decorators import api_view
from rest_framework.viewsets import ModelViewSet
from app_be.models import Feed
from app_be.serializers import FeedSerializer
from twitter import Status
logger = logging.getLogger(__name__)
class LoginClass:
@staticmethod
@api_view(['GET'])
def login(request):
return JsonResponse(status=200)
class TwitterClass:
@staticmethod
@api_view(['GET'])
def getLastSixTweets(request):
return JsonResponse(status=200, data=twitter_api.get_last_six_tweets(), safe=False)
@staticmethod
@api_view(['GET'])
def getMoreTweets(request, twitter_id):
return JsonResponse(status=200, data=twitter_api.get_more_tweets(twitter_id), safe=False)
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={})