From c7ffe212fddb2bebeba770c2f22aaa5e54434a95 Mon Sep 17 00:00:00 2001 From: Justin Campbell Date: Mon, 12 Jul 2021 12:38:57 -0400 Subject: [PATCH 1/3] Create HTTPResponse resource --- .../api/resources/http_response.py | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 src/webqueue2api/api/resources/http_response.py diff --git a/src/webqueue2api/api/resources/http_response.py b/src/webqueue2api/api/resources/http_response.py new file mode 100644 index 0000000..8c3357f --- /dev/null +++ b/src/webqueue2api/api/resources/http_response.py @@ -0,0 +1,25 @@ +from flask_restful import Resource +from http import HTTPStatus + + + +class HTTPResponse(Resource): + def get(self, response_code: int) -> tuple: + """Returns the passed HTTP response code and a JSON payload containing a description of the response. + + Args: + error_code (int): The HTTP response to return. + + Returns: + tuple: HTTP response descriptions as JSON and HTTP response code. + """ + # Build list of HTTP responses from http library + responses = {} + for status in HTTPStatus: + responses[status.value] = status.phrase + + # Check for requested response code in reponses + if response_code not in responses.keys(): + return ({"message": f"No entry for response code {response_code} found."}, 404) + + return ({"message": f"{responses[response_code]}"}, response_code) From bb445a37835c631943560496f616fe80e62dca00 Mon Sep 17 00:00:00 2001 From: Justin Campbell Date: Mon, 12 Jul 2021 12:39:07 -0400 Subject: [PATCH 2/3] Export HTTPResource --- src/webqueue2api/api/resources/__init__.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/webqueue2api/api/resources/__init__.py b/src/webqueue2api/api/resources/__init__.py index c8d303a..209502c 100644 --- a/src/webqueue2api/api/resources/__init__.py +++ b/src/webqueue2api/api/resources/__init__.py @@ -2,4 +2,5 @@ from .refresh_access_token import RefreshAccessToken from .item import Item from .queue import Queue -from .queue_list import QueueList \ No newline at end of file +from .queue_list import QueueList +from .http_response import HTTPResponse \ No newline at end of file From 75b0370d349ebea3f18c5339754e4b39291142d6 Mon Sep 17 00:00:00 2001 From: Justin Campbell Date: Mon, 12 Jul 2021 12:39:29 -0400 Subject: [PATCH 3/3] Add HTTPResource to /api/error/ path --- src/webqueue2api/api/app.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/webqueue2api/api/app.py b/src/webqueue2api/api/app.py index fdc00a9..99282be 100644 --- a/src/webqueue2api/api/app.py +++ b/src/webqueue2api/api/app.py @@ -2,7 +2,7 @@ from flask_restful import Api from flask_jwt_extended import JWTManager from .config import config -from .resources import Login, RefreshAccessToken, Item, Queue, QueueList +from .resources import Login, RefreshAccessToken, Item, Queue, QueueList, HTTPResponse app = Flask(__name__) api = Api(app) @@ -34,4 +34,5 @@ api.add_resource(RefreshAccessToken, "/api/tokens/refresh") api.add_resource(Item, "/api/data//") api.add_resource(Queue, "/api/data/") -api.add_resource(QueueList, "/api/data/get_queues") \ No newline at end of file +api.add_resource(QueueList, "/api/data/get_queues") +api.add_resource(HTTPResponse, "/api/error/") \ No newline at end of file