"""passbook oauth provider OpenID Views"""

from django.http import HttpRequest, JsonResponse
from django.shortcuts import reverse
from django.views.generic import View


class OpenIDConfigurationView(View):
    """Return OpenID Configuration"""

    def get(self, request: HttpRequest):
        """Get Response conform to https://openid.net/specs/openid-connect-discovery-1_0.html"""
        return JsonResponse({
            'issuer': request.build_absolute_uri(reverse('passbook_core:overview')),
            'authorization_endpoint': request.build_absolute_uri(
                reverse('passbook_oauth_provider:oauth2-authorize')),
            'token_endpoint': request.build_absolute_uri(reverse('passbook_oauth_provider:token')),
            "jwks_uri": request.build_absolute_uri(reverse('passbook_oauth_provider:openid-jwks')),
            "scopes_supported": [
                "openid:userinfo",
            ],
        })


class JSONWebKeyView(View):
    """JSON Web Key View"""

    def get(self, request: HttpRequest):
        """JSON Webkeys are not implemented yet, hence return an empty object"""
        return JsonResponse({})