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)