def update_room(room_id, room_number, size, capacity): """ Obtains the Room corresponding to the given ID and updates its properties with the provided values """ assert all( [ isinstance(room_id, int), isinstance(room_number, (int, str)), isinstance(size, models.RoomSize), isinstance(capacity, int), ] ) existing_room = ( DB.session.query(models.Room).filter(models.Room.id == room_id).first() ) if not existing_room: # TODO: jlh29, possibly create a room if one does not exist? DB.session.commit() return None existing_room.room_number = str(room_number) existing_room.size = size.value existing_room.capacity = capacity DB.session.commit() return models.BreakoutRoom( id=room_id, room_number=str(room_number), size=size, capacity=capacity, )
def get_all_room_objs(as_dicts=False): """ Returns all Rooms as RoomInfo objects or dictionaries """ rooms = DB.session.query(models.Room).order_by(models.Room.id).all() room_objs = [ models.BreakoutRoom( id=room.id, room_number=room.room_number, size=room.size, capacity=room.capacity, ) for room in rooms ] DB.session.commit() if as_dicts: return [room._asdict() for room in room_objs] return room_objs
def get_room_obj_by_id(room_id, as_dict=False): """ Returns the Room corresponding to the given ID as a RoomInfo object or dictionary """ room = DB.session.query(models.Room).filter(models.Room.id == room_id).first() if room is None: DB.session.commit() return None room_obj = models.BreakoutRoom( id=room.id, room_number=room.room_number, size=room.size, capacity=room.capacity, ) DB.session.commit() if as_dict: return room_obj._asdict() return room_obj