fixed and extended apis
This commit is contained in:
@@ -12,6 +12,7 @@ from sqlalchemy import exc
|
||||
from backend import db, app
|
||||
from backend.api import api_room
|
||||
from backend.models.room_model import Room
|
||||
from backend.models.recorder_model import Recorder
|
||||
|
||||
room_model = api_room.model('Room', {
|
||||
'id': fields.String(required=False, description='The room\'s identifier'),
|
||||
@@ -20,10 +21,14 @@ room_model = api_room.model('Room', {
|
||||
'alternate_name': fields.String(required=False, description='The room\'s alternate name'),
|
||||
'comment': fields.String(required=False, description='The room\'s comment'),
|
||||
'number': fields.String(required=True, description='The room\'s number'),
|
||||
'recorder': fields.List(fields.Nested(api_room.model('room_recorder',
|
||||
{'id': fields.Integer(), 'name': fields.String(),
|
||||
'ip': fields.String(), 'network_name': fields.String()})),
|
||||
required=False, description='Room members.')
|
||||
'recorder': fields.Nested(api_room.model('room_recorder',
|
||||
{'id': fields.Integer(), 'name': fields.String(),
|
||||
'ip': fields.String(), 'network_name': fields.String()}),
|
||||
allow_null=True,
|
||||
skip_none=False,
|
||||
required=False,
|
||||
description='Room recorder.'),
|
||||
|
||||
})
|
||||
|
||||
|
||||
@@ -33,7 +38,7 @@ room_model = api_room.model('Room', {
|
||||
class RoomResource(Resource):
|
||||
@jwt_required
|
||||
@api_room.doc('get_room')
|
||||
@api_room.marshal_with(room_model)
|
||||
@api_room.marshal_with(room_model, skip_none=False)
|
||||
def get(self, id):
|
||||
"""Fetch a user given its identifier"""
|
||||
room = Room.query.get(id)
|
||||
@@ -56,16 +61,24 @@ class RoomResource(Resource):
|
||||
@jwt_required
|
||||
@api_room.doc('update_room')
|
||||
@api_room.expect(room_model)
|
||||
@api_room.marshal_with(room_model)
|
||||
def put(self, id):
|
||||
app.logger.debug(api_room.payload)
|
||||
'''Update a task given its identifier'''
|
||||
num_rows_matched = Room.query.filter_by(id=id).update(api_room.payload)
|
||||
if "recorder_id" in api_room.payload:
|
||||
if api_room.payload["recorder_id"] is None:
|
||||
api_room.payload["recorder"] = None
|
||||
else:
|
||||
recorder = Recorder.query.get(api_room.payload["recorder_id"])
|
||||
if recorder is not None:
|
||||
api_room.payload["recorder"] = recorder
|
||||
else:
|
||||
return "specified recorder (id: {}) does not exist!".format(api_room.payload["recorder_id"]), 404
|
||||
room = Room.query.get(id)
|
||||
if room is not None:
|
||||
room.recorder = api_room.payload["recorder"]
|
||||
else:
|
||||
num_rows_matched = Room.query.filter_by(id=id).update(api_room.payload)
|
||||
db.session.commit()
|
||||
# if room is not None:
|
||||
# app.logger.debug(room)
|
||||
# room.update(api_room.payload)
|
||||
# db.session.commit()
|
||||
# return room
|
||||
return "ok"
|
||||
api_room.abort(404)
|
||||
|
||||
@@ -74,7 +87,7 @@ class RoomResource(Resource):
|
||||
class RoomList(Resource):
|
||||
@jwt_required
|
||||
@api_room.doc('rooms')
|
||||
@api_room.marshal_list_with(room_model)
|
||||
@api_room.marshal_list_with(room_model, skip_none=False)
|
||||
def get(self):
|
||||
"""
|
||||
List all rooms
|
||||
@@ -85,8 +98,18 @@ class RoomList(Resource):
|
||||
@jwt_required
|
||||
@api_room.doc('create_room')
|
||||
@api_room.expect(room_model)
|
||||
@api_room.marshal_with(room_model, code=201)
|
||||
@api_room.marshal_with(room_model, skip_none=False, code=201)
|
||||
def post(self):
|
||||
if "recorder_id" in api_room.payload:
|
||||
if api_room.payload["recorder_id"] is None:
|
||||
api_room.payload["recorder"] = None
|
||||
else:
|
||||
recorder = Recorder.query.get(api_room.payload["recorder_id"])
|
||||
if recorder is not None:
|
||||
api_room.payload["recorder"] = recorder
|
||||
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:
|
||||
|
||||
Reference in New Issue
Block a user