"""passbook adapter""" import requests from allauth.socialaccount import app_settings from allauth.socialaccount.providers.oauth2.views import (OAuth2Adapter, OAuth2CallbackView, OAuth2LoginView) from allauth_passbook.provider import PassbookProvider class PassbookOAuth2Adapter(OAuth2Adapter): """passbook OAuth2 Adapter""" provider_id = PassbookProvider.id # pylint: disable=no-member settings = app_settings.PROVIDERS.get(provider_id, {}) # noqa provider_base_url = settings.get("PASSBOOK_URL", 'https://id.beryju.org') access_token_url = '{0}/application/oauth/token/'.format(provider_base_url) authorize_url = '{0}/application/oauth/authorize/'.format(provider_base_url) profile_url = '{0}/api/v1/openid/'.format( provider_base_url) def complete_login(self, request, app, access_token, **kwargs): headers = { 'Authorization': 'Bearer {0}'.format(access_token.token), 'Content-Type': 'application/json', } extra_data = requests.get(self.profile_url, headers=headers) return self.get_provider().sociallogin_from_response( request, extra_data.json() ) oauth2_login = OAuth2LoginView.adapter_view(PassbookOAuth2Adapter) # noqa oauth2_callback = OAuth2CallbackView.adapter_view(PassbookOAuth2Adapter) # noqa