Gallery-Archivist/archivist/apps/api/views.py

42 lines
1.4 KiB
Python

from django.http import JsonResponse
# Create your views here.
from django.contrib.auth.models import User, Group
from apps.user.models import UserProfile, SeenPost
from apps.sites.models import Submissions
class UserProfileAPIView(APIView):
def seen_post(request, submission_hash):
user = UserProfile.objects.get(user=request.user)
if request.method == 'GET':
try:
submission = Submissions.objects.get(submission_hash=submission_hash)
try:
SeenPost.objects.get(user=user, post_id=submission.pk)
return JsonResponse({'seen': True}, status=status.HTTP_200_OK)
except SeenPost.DoesNotExist:
return JsonResponse({'seen': False}, status=status.HTTP_200_OK)
except Submissions.DoesNotExist:
return JsonResponse({'message': 'Submission not found.'}, status=status.HTTP_404_NOT_FOUND)
if request.method == 'PUT':
submission = Submissions.objects.get(submission_hash=submission_hash)
SeenPost.objects.get_or_create(user=user, post_id=submission.pk)
return JsonResponse({'seen': True}, status=status.HTTP_200_OK)
else:
return JsonResponse({'message': 'Only GET and PUT requests are allowed.'}, status=status.HTTP_405_METHOD_NOT_ALLOWED)