now returning bad request when wrong parameters are supplied for room / recorder creation

This commit is contained in:
Tobias Kurze
2020-08-05 07:51:13 +02:00
parent dc142bca0c
commit 16e4231807
7 changed files with 129 additions and 15 deletions

View File

@@ -5,15 +5,20 @@ For example: listing of available auth providers or registration of users.
Login through API does not start a new session, but instead returns JWT.
"""
import logging
from flask_jwt_extended import jwt_required
from flask_restx import fields, Resource
from sqlalchemy import exc
from backend import db, app
from backend import db, app, LrcException
from backend.api import api_room
from backend.models.room_model import Room
from backend.models.recorder_model import Recorder
logger = logging.getLogger("lrc.api.room")
room_model = api_room.model('Room', {
'id': fields.String(required=False, description='The room\'s identifier'),
'created_at': fields.DateTime(required=False, description='Creation date of the room info'),
@@ -80,8 +85,8 @@ class RoomResource(Resource):
room.recorder = api_room.payload["recorder"]
else:
num_rows_matched = Room.query.filter_by(id=id).update(api_room.payload)
db.session.commit()
return "ok"
db.session.commit()
return "ok"
api_room.abort(404)
@@ -112,11 +117,15 @@ class RoomList(Resource):
else:
return "specified recorder (id: {}) does not exist!".format(api_room.payload["recorder_id"]), 404
del api_room.payload["recorder_id"]
room = Room(**api_room.payload)
db.session.add(room)
try:
db.session.commit()
return room
except exc.IntegrityError as e:
db.session.rollback()
return str(e.detail), 400
room = Room(**api_room.payload)
db.session.add(room)
try:
db.session.commit()
return room
except exc.IntegrityError as e:
db.session.rollback()
return str(e.detail), 400
except LrcException as e:
logger.error(e)
return api_room.abort(400, str(e))