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)

