From 7c0393bc5dafcde6f9e7044e775016780a5636c2 Mon Sep 17 00:00:00 2001 From: Tyler Perkins Date: Fri, 24 Feb 2023 12:56:05 -0500 Subject: [PATCH] Add proper response body for search endpoint --- src/api/get.py | 18 +++++------------- src/api/search.py | 13 ++++++++----- src/api/util.py | 6 ++---- 3 files changed, 15 insertions(+), 22 deletions(-) diff --git a/src/api/get.py b/src/api/get.py index 2ccc41a..2a5f994 100644 --- a/src/api/get.py +++ b/src/api/get.py @@ -1,6 +1,6 @@ from flask_restx import Namespace, Resource, fields from flask_restx import reqparse -from flask import make_response +from flask import make_response, abort from api.clientGetter import getClientSafely import logging import random @@ -18,15 +18,11 @@ class getExactFile(Resource): def get(self, file_name): client = getClientSafely() if client is None: - return { - "message" : "Error connecting to S3" - }, 500 + abort(500, "S3 failed to start") if file_name in client.getCurrentMemeList(): return make_response(client.getMeme(file_name)) else: - return { - "message": "Requested file '" + file_name + "' not found" - }, 404 + abort(400, "Requested file '" + file_name + "' not found") @api.route('/random') @api.doc(description="Returns a random meme") @@ -37,9 +33,7 @@ class getRandomFile(Resource): def get(self): client = getClientSafely() if client is None: - return { - "message" : "Error connecting to S3" - }, 500 + abort(500, "S3 failed to start") choice = random.choice(tuple(client.getCurrentMemeList())) return make_response(client.getMeme(choice)) @@ -54,9 +48,7 @@ class getRandomFile(Resource): def get(self): client = getClientSafely() if client is None: - return { - "message" : "Error connecting to S3" - }, 500 + abort(500, "S3 failed to start") choice = random.choice(tuple(client.getCurrentMemeList())) while choice in self.cache: diff --git a/src/api/search.py b/src/api/search.py index 931d520..1ffb003 100644 --- a/src/api/search.py +++ b/src/api/search.py @@ -1,6 +1,8 @@ from flask_restx import Namespace, Resource, fields from flask_restx import reqparse from api.clientGetter import getClientSafely +from api.get import getExactFile as getApi +from flask import abort import logging # Exported namespace @@ -18,11 +20,12 @@ class exactSearch(Resource): def get(self, query): client = getClientSafely() if client is None: - return { - "message": "Error connecting to S3" - }, 500 + abort(500, "S3 failed to start") if query in client.getCurrentMemeList(): - return "nice" + return { + "found" : True, + "url" : "/resource/exact/" + query + } else: - return "boo" + return { "found" : False } diff --git a/src/api/util.py b/src/api/util.py index 6293ed5..dd87da9 100644 --- a/src/api/util.py +++ b/src/api/util.py @@ -1,5 +1,6 @@ from flask_restx import Namespace, Resource, fields from flask_restx import reqparse +from flask import abort from api.clientGetter import getClientSafely import logging @@ -12,10 +13,7 @@ class getCount(Resource): def get(self): client = getClientSafely() if client is None: - return { - "message": "Error connecting to S3" - }, 500 - + abort(500, "S3 failed to start") return { "count" : len(client.getCurrentMemeList()) }, 200