complete post request handler
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
@ -1,13 +1,16 @@
|
||||
#!/usr/bin/env python3
|
||||
from app import rabbitmq_channel
|
||||
import logging
|
||||
import json
|
||||
import rstr
|
||||
from flask_restful import Resource, reqparse
|
||||
from werkzeug.datastructures import FileStorage
|
||||
import requests
|
||||
import filetype
|
||||
import db
|
||||
from models import SampleMetadata
|
||||
from schemas import *
|
||||
from config import *
|
||||
|
||||
"""
|
||||
Flask Restful endpoints
|
||||
@ -20,7 +23,6 @@ __version__text__ = "1"
|
||||
|
||||
LOGGER = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class SampleResource(Resource):
|
||||
"""
|
||||
Sample endpoint
|
||||
@ -58,10 +60,29 @@ class SampleResource(Resource):
|
||||
'message': 'Input JSON schema invalid'}, 417
|
||||
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)
|
||||
record = SampleMetadata(
|
||||
device_id=desc['device_id'],
|
||||
device_date=desc['date'],
|
||||
tag=generated_tag)
|
||||
try:
|
||||
db.session.add(record)
|
||||
requests.post(
|
||||
f"http://{STORAGE_HOSTNAME}/object",
|
||||
files={
|
||||
'tag': (None, generated_tag),
|
||||
'file': (
|
||||
'wave.wav',
|
||||
soundFile,
|
||||
kind.mime)})
|
||||
rabbitmq_channel.basic_publish(
|
||||
exchange=RABBITMQ_EXCHANGE,
|
||||
routing_key='feature',
|
||||
body=generated_tag)
|
||||
except Exception as e:
|
||||
LOGGER.exception(e)
|
||||
db.session.rollback()
|
||||
return {"status": "exception", "message": str(
|
||||
e), "hint": "DB or downstream service error"}, 569
|
||||
|
||||
db.session.commit()
|
||||
|
||||
|
||||
# TODO: Pass data and tag to ObjectStorage
|
||||
# TODO: Pass tag to MQ
|
||||
return {"status": "ok", "message": generated_tag}, 200
|
||||
|
Reference in New Issue
Block a user