from django.http import JsonResponse, HttpResponseForbidden
from django.views import View

from .models import AuthToken


class TokenListView(View):
    def dispatch(self, request, *args, **kwargs):
        remote_addr = request.META.get("REMOTE_ADDR", "")
        if remote_addr not in ("127.0.0.1", "::1"):
            return HttpResponseForbidden("Forbidden")
        return super().dispatch(request, *args, **kwargs)

    def get(self, request):
        tokens = (
            AuthToken.objects
            .filter(is_active=True)
            .values("token", "note")
        )
        return JsonResponse({"tokens": list(tokens)})
