From 2ceb308fae79b2d7b27f14a9e1e572db3c6c1773 Mon Sep 17 00:00:00 2001 From: thecosmos Date: Tue, 21 May 2019 01:00:29 +0530 Subject: [PATCH] Add Exceptions --- docs/api.rst | 12 ++++++++++++ flask_discord/_http.py | 14 +++++++++++++- flask_discord/exceptions.py | 6 ++++++ 3 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 flask_discord/exceptions.py diff --git a/docs/api.rst b/docs/api.rst index 9cee104..6dea6e6 100644 --- a/docs/api.rst +++ b/docs/api.rst @@ -38,3 +38,15 @@ Models .. autoclass:: flask_discord.models.UserConnection :members: :inherited-members: + + +Exceptions +---------- + +.. autoclass:: flask_discord.exceptions.HttpException + :members: + :inherited-members: + +.. autoclass:: flask_discord.exceptions.Unauthorized + :members: + :inherited-members: diff --git a/flask_discord/_http.py b/flask_discord/_http.py index 276d9a1..cd877c4 100644 --- a/flask_discord/_http.py +++ b/flask_discord/_http.py @@ -2,6 +2,7 @@ import os import abc from . import configs +from . import exceptions from flask import session, jsonify from requests_oauthlib import OAuth2Session @@ -87,8 +88,19 @@ class DiscordOAuth2HttpClient(abc.ABC): ------- dict Dictionary containing received from sent HTTP GET request. + + Raises + ------ + flask_discord.exceptions.Unauthorized + Raises :py:class:`flask_discord.exceptions.Unauthorized` if current user is not authorized. + """ - return self._make_session().get(configs.API_BASE_URL + route).json() + response = self._make_session().get(configs.API_BASE_URL + route) + + if response.status_code == 401: + raise exceptions.Unauthorized + + return response.json() def get_json(self): discord_session = self._make_session(token=session.get("discord_oauth2_token")) diff --git a/flask_discord/exceptions.py b/flask_discord/exceptions.py new file mode 100644 index 0000000..ef47d38 --- /dev/null +++ b/flask_discord/exceptions.py @@ -0,0 +1,6 @@ +class HttpException(Exception): + """Base Exception class representing a HTTP exception.""" + + +class Unauthorized(HttpException): + """A HTTP Exception raised when user is not authorized."""