From fefbb63f674a99658a54a0f538bc2b3b2855a235 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torma=20Krist=C3=B3f?= Date: Tue, 31 Mar 2020 15:10:58 +0200 Subject: [PATCH] add get endpoints --- requirements.txt | 2 +- src/app.py | 3 ++- src/resources.py | 28 ++++++++++++++++++++++++++-- 3 files changed, 29 insertions(+), 4 deletions(-) diff --git a/requirements.txt b/requirements.txt index d88f78c..8db33f2 100644 --- a/requirements.txt +++ b/requirements.txt @@ -9,4 +9,4 @@ filetype sqlalchemy flask_sqlalchemy rstr -pike \ No newline at end of file +pika \ No newline at end of file diff --git a/src/app.py b/src/app.py index d9389f7..df72145 100644 --- a/src/app.py +++ b/src/app.py @@ -7,7 +7,7 @@ from sentry_sdk.integrations.flask import FlaskIntegration import pika from config import * -import db +from db import db from resources import * """ @@ -53,6 +53,7 @@ logger.setLevel(logging.DEBUG) logger.addHandler(handler) api.add_resource(SampleResource, "/v1/input/sample") +api.add_resource(SampleParameterResource, '/v1/input/sample') if __name__ == "__main__": app.run( diff --git a/src/resources.py b/src/resources.py index 073b468..28c9bd1 100644 --- a/src/resources.py +++ b/src/resources.py @@ -7,7 +7,7 @@ from flask_restful import Resource, reqparse from werkzeug.datastructures import FileStorage import requests import filetype -import db +from db import db from models import SampleMetadata from schemas import * from config import * @@ -23,6 +23,7 @@ __version__text__ = "1" LOGGER = logging.getLogger(__name__) + class SampleResource(Resource): """ Sample endpoint @@ -67,7 +68,7 @@ class SampleResource(Resource): try: db.session.add(record) requests.post( - f"http://{STORAGE_HOSTNAME}/object", + f"http://{STORAGE_HOSTNAME}/v1/storage/object", files={ 'tag': (None, generated_tag), 'file': ( @@ -86,3 +87,26 @@ class SampleResource(Resource): db.session.commit() return {"status": "ok", "message": generated_tag}, 200 + + def get(self): + """ + Get all stored items + :return: + """ + samples = SampleMetadata.query.get.all() + return {"status": "ok", "message": samples}, 200 + + +class SampleParameterResource(Resource): + """ + Sample endpoint with parameters + """ + + def get(self, tag: str): + """ + Get a specific item + :param tag: + :return: + """ + sample = SampleMetadata.query.filter_by(tag=tag).first_or_404() + return {"status": "ok", "message": sample}, 200