from django.views import View
from django.conf import settings
from django.http import JsonResponse
from django.core.exceptions import ObjectDoesNotExist
from apps.newsletter.models import NewsLetterSubscription

from apps.accounts.utils import add_mailer_user
 

# Create your views here.


def is_ajax(request):
    return request.META.get('HTTP_X_REQUESTED_WITH') == 'XMLHttpRequest'


class NewsLetterSubscriptionView(View):
    """ Index view """
    def get(self, request, *args, **kwargs):
        # code to process a GET request:
        pass

    def post(self, request, *args, **kwargs):
        # code to process a POST request
        if is_ajax(request):
            if 'email' in request.POST :
                email = request.POST['email']
                if email != '':
                    try:
                        subscription = NewsLetterSubscription.objects.get(email=email)
                        return JsonResponse({'status': 'success', 'message': 'Thank you for subscribing to our newsletter!'})
                    except ObjectDoesNotExist:
                        subscription = NewsLetterSubscription(
                            email=email,
                            subscribed=True
                        )
                        subscription.save()
                        add_mailer_user(
                            email,
                            "",
                            "",
                            "",
                            settings.MAILER_LITE_GROUPS.get("Newsletter")
                        )
                        return JsonResponse({'status': 'success', 'message': 'Thank you for subscribing to our newsletter!'})
        return JsonResponse({'status': 'error', 'message': 'There was an error subscribing. Please try again.'})
