From afd8f4a9fdec58b9918f5f75ca0e12190de08e70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torma=20Krist=C3=B3f?= Date: Wed, 25 Mar 2020 03:57:07 +0100 Subject: [PATCH] done for today --- requirements.txt | 3 ++- src/models.py | 4 ++-- src/resources.py | 12 +++++++++--- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/requirements.txt b/requirements.txt index 3f27ce6..91710c2 100644 --- a/requirements.txt +++ b/requirements.txt @@ -7,4 +7,5 @@ requests werkzeug filetype sqlalchemy -flask_sqlalchemy \ No newline at end of file +flask_sqlalchemy +rstr \ No newline at end of file diff --git a/src/models.py b/src/models.py index 8f7df0d..c182932 100644 --- a/src/models.py +++ b/src/models.py @@ -19,7 +19,7 @@ class SampleMetadata(db.Model): id = db.Column(db.Integer, primary_key=True, auto_increment=True) timestamp = db.Column(db.TIMESTAMP, nullable=False, server_default=func.now()) - device_id = db.Column(db.String, nullable=False) + device_id = db.Column(db.Integer, nullable=False) device_date = db.Column(db.DateTime, nullable=False) - tag = db.Column(db.String, nullable=False) + tag = db.Column(db.String(32), nullable=False) diff --git a/src/resources.py b/src/resources.py index 80092f4..ffde55b 100644 --- a/src/resources.py +++ b/src/resources.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 import logging import json -from flask import request +import rstr from flask_restful import Resource, reqparse from werkzeug.datastructures import FileStorage import filetype @@ -50,12 +50,18 @@ class SampleResource(Resource): LOGGER.exception(e) return {'status': 'error', 'message': 'Input JSON could not be parsed'}, 400 - validate_errors = InputSchema().validate(desc) + validate_errors = SampleSchema().validate(desc) if validate_errors: LOGGER.error( "Input JSON did not conform to schema. It was: {}", desc) return {'status': 'error', 'message': 'Input JSON schema invalid'}, 417 -# TODO: Preserve input data in relational DB + generated_tag = rstr.xeger(r'^[a-zA-Z]+[0-9a-zA-Z_]*$', 2, 32) + + record = SampleMetadata(device_id=desc['device_id'], device_date=desc['date'], tag=generated_tag) + db.session.add(record) + db.session.commit() + + # TODO: Pass data and tag to ObjectStorage # TODO: Pass tag to MQ