def _save_room(cd): room = Room() room.id = cd['id'] or None room.number = cd['number'] room.description = cd['description'] room.syndic = cd['syndic'] room.save() return room
def post(self, obj_id=None): """ Post room(s) Create a new room/ Update a room --- tags: - rooms parameters: - in: path name: obj_id - in: body name: body schema: id: Room required: - number properties: number: type: integer description: room number responses: 201: description: Room created """ data = self.prepare_data() form = RoomForm(data, csrf_enabled=False) if form.validate(): if obj_id: room = Room.get_by_id(int(obj_id)) if not room: abort(404, message="Room with key ({}) not found".format(obj_id)) room.is_booked = form.is_booked.data if form.is_booked.data else room.is_booked room.put() output = self.output_fields output.update(self.resource_fields) return marshal(room, output), 200 room = Room(number=form.number.data, is_booked=form.is_booked.data) room.put() room.id = str(room.key.id()) room.put() output = self.output_fields output.update(self.resource_fields) return marshal(room, output), 201 error_data = self.prepare_errors(form.errors) raise CustomException(code=400, name='Validation Failed', data=error_data)