From 9e4c10d2cc7cc8e0a0e0114923dca6eac7f9c502 Mon Sep 17 00:00:00 2001 From: Justin Campbell Date: Wed, 16 Jun 2021 16:07:33 -0400 Subject: [PATCH] Create ItemResource resource --- src/webqueue2api/api/resources/item.py | 43 ++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 src/webqueue2api/api/resources/item.py diff --git a/src/webqueue2api/api/resources/item.py b/src/webqueue2api/api/resources/item.py new file mode 100644 index 0000000..0981100 --- /dev/null +++ b/src/webqueue2api/api/resources/item.py @@ -0,0 +1,43 @@ +from flask_restful import Resource +from flask_jwt_extended import jwt_required +from webqueue2api.parser import Item +from webqueue2api.parser.errors import ItemDoesNotExistError + +class ItemResource(Resource): + # @jwt_required + def get(self, queue: str, number: int) -> tuple: + """Returns the JSON representation of the item requested. + + Return Codes: + 200 (OK): On success. + + Example: + /api/ce/100 returns: + { + "lastUpdated": "07-23-20 10:11 PM", + "headers": [...], + "content": [...], + "isLocked": "ce 100 is locked by knewell using qvi", + "userEmail": "campb303@purdue.edu", + "userName": "Justin Campbell", + "userAlias": "campb303", + "assignedTo": "campb303", + "subject": "Beepboop", + "status": "Dont Delete", + "priority": "", + "deparment": "", + "building": "", + "dateReceived": "Tue, 23 Jun 2020 13:25:51 -0400" + } + + Args: + queue (str): The queue of the item requested. + item (int): The number of the item requested. + + Returns: + tuple: Item as JSON and HTTP response code. + """ + try: + return (Item(queue, number).toJson(), 200) + except ItemDoesNotExistError: + return ({"message": f"Item {queue}{number} not found."}, 404) \ No newline at end of file