from django.http import JsonResponse
from .utils import validate_jwt

class JWTAuthenticationMiddleware:
    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):
        token = request.headers.get('Authorization')
        if token:
            #print(f"DEBUG: token {token}")
            token = token.split()[1]  # Assuming the format is 'Bearer <token>'
            #print(f"DEBUG: token {token}")
            payload = validate_jwt(token)
            #print(f"DEBUG: payload Validate {payload}")
            if payload:
                #print(f"DEBUG After Validate JWT payload {payload}")
                request.email = payload['email']
                #print(f"DEBUG: email {request.email}")
            else:
                return JsonResponse({'error': 'Invalid token'}, status=401)
        response = self.get_response(request)
        #print(response)
        return response
