Use separate _fetch_token method

This commit is contained in:
thec0sm0s
2020-07-25 22:52:34 +05:30
parent 164791436e
commit 59d944aa0c
2 changed files with 10 additions and 7 deletions

View File

@@ -8,7 +8,7 @@ import abc
from . import configs
from . import exceptions
from flask import session
from flask import session, request
from collections.abc import Mapping
from requests_oauthlib import OAuth2Session
@@ -58,6 +58,14 @@ class DiscordOAuth2HttpClient(abc.ABC):
def _token_updater(token):
session["DISCORD_OAUTH2_TOKEN"] = token
def _fetch_token(self):
discord = self._make_session(state=session.get("DISCORD_OAUTH2_STATE"))
return discord.fetch_token(
configs.DISCORD_TOKEN_URL,
client_secret=self.__client_secret,
authorization_response=request.url
)
def _make_session(self, token: str = None, state: str = None, scope: list = None) -> OAuth2Session:
"""A low level method used for creating OAuth2 session.

View File

@@ -91,12 +91,7 @@ class DiscordOAuth2Session(_http.DiscordOAuth2HttpClient):
"""
if request.values.get("error"):
return request.values["error"]
discord = self._make_session(state=session.get("DISCORD_OAUTH2_STATE"))
token = discord.fetch_token(
configs.DISCORD_TOKEN_URL,
client_secret=self.__client_secret,
authorization_response=request.url
)
token = self._fetch_token()
self._token_updater(token)
def revoke(self):