def buildings_post():
    """ method to post a new building """
    #body = request.get_data()
    #body = json.loads(body.decode("utf-8"))
    newid = str(uuid.uuid4())
    newobj = Building(id=newid)
    #if body["ownerId"]:
    #    newobj.ownerId = body["ownerId"]
    newobj.save()
    return newobj.attribute_values
예제 #2
0
def buildings_building_id_delete(buildingId) -> str:
    try:
        building = Building.get(buildingId)
        building.delete()
    except Exception as e:
        return 'Building with id=%s does not exist.' % (buildingId)
    return 'Successfully deleted buildingId=%s.' % (buildingId)
예제 #3
0
def buildings_building_id_delete(buildingId) -> str:
    try:
        building = Building.get(buildingId)
        building.delete()
    except Exception as e:
        return 'Building with id=%s does not exist.' % (buildingId)
    return 'Successfully deleted buildingId=%s.' % (buildingId)
예제 #4
0
def buildings_building_id_get(buildingId) -> str:
    try:
        building = Building.get(buildingId)
    except Exception as e:
        print(e)
        return 'Building with id=%s does not exist.' % (buildingId)
    return building.attribute_values
예제 #5
0
def buildings_building_id_get(buildingId) -> str:
    try:
        building = Building.get(buildingId)
    except Exception as e:
        print(e)
        return 'Building with id=%s does not exist.' % (buildingId)
    return building.attribute_values
def buildings_building_id_get(buildingId):
    """ method to get building using building id """
    try:
        building = Building.get(buildingId)
    except Exception:
        return 'Building with id=%s does not exist.' % (buildingId)
    return building.attribute_values
def users_user_id_put(userId, newUser):
	user = get_users_by_id(userId)
	
	if (user == 404):
		return 'User with the provided ID does not exist', 404
	

    # Need to check that if building ID is changed, the new Building exists
	if 'buildingId' in newUser:
		try:
			building = Building.get(newUser['buildingId'])
		except Exception as e:
			return 'Building with specified ID does not exist'
			
    
    # Check that if email is changed, it is not the same as another user's
	if 'email' in newUser:
		newemail = newUser['email']
		u = get_users_by_email(newemail)
		if len(u) != 0 and newemail != user.attribute_values['email']:
			return 'A user with the given email id already exists', 400    	
    
	attributes = user.attribute_values.keys()
	for key in newUser.keys():
		if key in attributes and key != 'id':
			user.update_item(key, value=newUser[key], action='PUT')
	return 'User updated successfully'
def robots_robot_id_put(robotId, newRobot):
    """ method to update a robot using robot id """
    try:
        robot = Robot.get(robotId)
    except Exception:
        return 'Robot with id=%s does not exist.' % (robotId),404
	
	# Need to check that if building ID is changed, the new Building exists
    if 'buildingId' in newRobot:
    	try:
    		building = Building.get(newRobot['buildingId'])
    	except Exception as e:
    		return 'Building with specified ID does not exist',412
    
    # Do the same for sensor ID
    if 'sensorId' in newRobot:
        for val in newRobot['sensorId']:
     	    try:
     		    #print(val)
     		    sensor = Sensor.get(val)
     	    except Exception as e:
     		    return 'Sensor with specified ID does not exist',412

    attributes = robot.attribute_values.keys()
    for key in newRobot.keys():
        if key in attributes and key!= "id":
            # print(key)
            robot.update_item(key, value=newRobot[key], action='PUT')
    return 'Robot with id=%s updated successfully.' % (robotId),200
def db_put(id,type,newSensor):
    if type not in types:
        return 1

    if type == 'sensor':
        try:
            sensor = Sensor.get(id)
        except Exception:
            return 2
        
        # Need to check that if building ID is changed, the new Building exists
        if 'buildingId' in newSensor:
            try:
                building = Building.get(newSensor['buildingId'])
            except Exception as e:
                return 2

        attributes = sensor.attribute_values.keys()
        for key in newSensor.keys():
            if key in attributes and key != 'id':
                if newSensor[key] == '':
                    sensor.update_item(key, value=' ', action='PUT')
                else:
                    sensor.update_item(key, value=newSensor[key], action='PUT')
    return 0
예제 #10
0
def robots_robot_id_put(robotId, newRobot):
    """ method to update a robot using robot id """
    try:
        robot = Robot.get(robotId)
    except Exception:
        return 'Robot with id=%s does not exist.' % (robotId)

# Need to check that if building ID is changed, the new Building exists
    if 'buildingId' in newRobot:
        try:
            building = Building.get(newRobot['buildingId'])
        except Exception as e:
            return 'Building with specified ID does not exist'

    # Do the same for sensor ID
    if 'sensorId' in newRobot:
        try:
            sensor = Sensor.get(newRobot['sensorId'])
        except Exception as e:
            return 'Sensor with specified ID does not exist'

    attributes = robot.attribute_values.keys()
    for key in newRobot.keys():
        if key in attributes and key is not 'id':
            robot.update_item(key, value=newRobot[key], action='PUT')
    return 'Robot with id=%s updated successfully.' % (robotId)
예제 #11
0
def buildings_building_id_get(buildingId):
    """ method to get building using building id """
    try:
        building = Building.get(buildingId)
    except Exception:
        return 'Building with id=%s does not exist.' % (buildingId)
    return building.attribute_values
예제 #12
0
def buildings_post():
    """ method to post a new building """
    body = request.get_data()
    body = json.loads(body.decode("utf-8"))

    # Check that the owner exists
    #    try:
    #    	owner = User.get(body["ownerId"])
    #    except Excpetion as e:
    #    	return 'The owner specified does not exist'

    newid = str(uuid.uuid4())
    newobj = Building(id=newid)
    if "ownerId" in body:
        newobj.ownerId = body["ownerId"]
    newobj.save()
    return newobj.attribute_values
def buildings_building_id_delete(buildingId):
    """ method to delete building using building id """
    try:
        building = Building.get(buildingId)
        building.delete()
    except Exception:
        return 'Building with id=%s does not exist.' % (buildingId)
    return 'Successfully deleted buildingId=%s.' % (buildingId)
예제 #14
0
def buildings_building_id_delete(buildingId):
    """ method to delete building using building id """
    try:
        building = Building.get(buildingId)
        building.delete()
    except Exception:
        return 'Building with id=%s does not exist.' % (buildingId)
    return 'Successfully deleted buildingId=%s.' % (buildingId)
예제 #15
0
def buildings_post():
    """ method to post a new building """
    body = request.get_data()
    body = json.loads(body.decode("utf-8"))
    
    # Check that the owner exists
#    try:
#    	owner = User.get(body["ownerId"])
#    except Excpetion as e:
#    	return 'The owner specified does not exist'
    
    newid = str(uuid.uuid4())
    newobj = Building(id=newid)
    if "ownerId" in body:
        newobj.ownerId = body["ownerId"]
    newobj.save()
    return newobj.attribute_values
예제 #16
0
def buildings_building_id_sensors_post(buildingId) -> str:
    try:
        building = Building.get(buildingId)
    except Exception as e:
        print(e)
        return 'Building with id=%s does not exist.' % (buildingId)
    newID = str(uuid.uuid4())
    newObj = Sensor(id=newID, buildingId=buildingId)
    newObj.save()
    return newObj.attribute_values
def buildings_building_id_robots_post(buildingId):
    """ method to post robot under a  building """
    try:
        building = Building.get(buildingId)
    except Exception:
        return 'Building with id %s does not exist.' % (buildingId)
    newid = str(uuid.uuid4())
    newobj = Robot(id=newid, buildingId=buildingId)
    newobj.save()
    return newobj.attribute_values
예제 #18
0
def buildings_building_id_sensors_post(buildingId):
    """ method to post a sensor using sensor id """
    try:
        building = Building.get(buildingId)
    except Exception:
        return 'Building with id=%s does not exist.' % (buildingId)
    newid = str(uuid.uuid4())
    newobj = Sensor(id=newid, buildingId=buildingId)
    newobj.save()
    return newobj.attribute_values
예제 #19
0
def buildings_building_id_robots_post(buildingId):
    """ method to post robot under a  building """
    try:
        building = Building.get(buildingId)
    except Exception:
        return 'Building with id %s does not exist.' % (buildingId)
    newid = str(uuid.uuid4())
    newobj = Robot(id=newid, buildingId=buildingId)
    newobj.save()
    return newobj.attribute_values
예제 #20
0
def buildings_building_id_put(buildingId, newBuilding) -> str:
    try:
        building = Building.get(buildingId)
    except Exception as e:
        return 'Building with id=%s does not exist.' % (buildingId)
    attributes = building.attribute_values.keys()
    for key in newBuilding.keys():
        if key in attributes and key is not 'id':
            building.update_item(key, value=newBuilding[key], action='PUT')
    return 'Building with id=%s updated successfully.' % (buildingId)
예제 #21
0
def buildings_building_id_put(buildingId, newBuilding) -> str:
    try:
        building = Building.get(buildingId)
    except Exception as e:
        return 'Building with id=%s does not exist.' % (buildingId)
    attributes = building.attribute_values.keys()
    for key in newBuilding.keys():
        if key in attributes and key is not 'id':
            building.update_item(key, value=newBuilding[key], action='PUT')
    return 'Building with id=%s updated successfully.' % (buildingId)
예제 #22
0
def buildings_building_id_sensors_post(buildingId) -> str:
    try:
        building = Building.get(buildingId)
    except Exception as e:
        print(e)
        return 'Building with id=%s does not exist.' % (buildingId)
    newID = str(uuid.uuid4())
    newObj = Sensor(id=newID, buildingId=buildingId)
    newObj.save()
    return newObj.attribute_values
def buildings_building_id_sensors_post(buildingId):
    """ method to post a sensor using sensor id """
    try:
        building = Building.get(buildingId)
    except Exception:
        return 'Building with id=%s does not exist.' % (buildingId)
    newid = str(uuid.uuid4())
    newobj = Sensor(id=newid, buildingId=buildingId)
    newobj.save()
    return newobj.attribute_values
def buildings_building_id_robots_get(buildingId, capability = None):
	resultList = []
	try:
		building = Building.get(buildingId)
	except Exception as e:
		return 'Building with id=%s does not exist.' % (buildingId)
    
	if capability is not None and capability != '':
		for item in Robot.scan(buildingId__eq=buildingId, capabilities__contains=capability, conditional_operator='AND'):
			resultList.append(item.attribute_values)
	else:
		for item in Robot.scan(buildingId__eq=buildingId):
			resultList.append(item.attribute_values)
	return resultList
예제 #25
0
def users_user_id_get(userId):
    """ method to retrieve user using user id """
    try:
        user = User.get(userId)
        buildings = Building.scan(ownerId__eq=userId)
        #add ownedBuildings to the user object without having it reflect in the model
        user.__dict__["attribute_values"].update({"ownedBuildings": []}) 
        #look at all the builings the user owns
        for building in buildings:
            #add the builings to the ownedBuildings list
            user.__dict__["attribute_values"]["ownedBuildings"].append(building.attribute_values["id"])
    except Exception as inst:
        print(inst.args)
        return 'User with id=%s does not exist.' % (userId)
    return user.attribute_values
예제 #26
0
def buildings_building_id_robots_get(buildingId, capability=None):
    resultList = []
    try:
        building = Building.get(buildingId)
    except Exception as e:
        return 'Building with id=%s does not exist.' % (buildingId)

    if capability is not None and capability != '':
        for item in Robot.scan(buildingId__eq=buildingId,
                               capabilities__contains=capability,
                               conditional_operator='AND'):
            resultList.append(item.attribute_values)
    else:
        for item in Robot.scan(buildingId__eq=buildingId):
            resultList.append(item.attribute_values)
    return resultList
예제 #27
0
def users_user_id_get(userId):
    """ method to retrieve user using user id """
    try:
        user = User.get(userId)
        buildings = Building.scan(ownerId__eq=userId)
        #add ownedBuildings to the user object without having it reflect in the model
        user.__dict__["attribute_values"].update({"ownedBuildings": []})
        #look at all the builings the user owns
        for building in buildings:
            #add the builings to the ownedBuildings list
            user.__dict__["attribute_values"]["ownedBuildings"].append(
                building.attribute_values["id"])
    except Exception as inst:
        print(inst.args)
        return 'User with id=%s does not exist.' % (userId)
    return user.attribute_values
예제 #28
0
def sensors_sensor_id_put(sensorId, newSensor):
    """ method to update sensor using sensor id """
    try:
        sensor = Sensor.get(sensorId)
    except Exception:
        return 'Sensor with id=%s does not exist.' % (sensorId)

    # Need to check that if building ID is changed, the new Building exists
    if 'buildingId' in newSensor:
        try:
            building = Building.get(newSensor['buildingId'])
        except Exception as e:
            return 'Building with specified ID does not exist'

    attributes = sensor.attribute_values.keys()
    for key in newSensor.keys():
        if key in attributes and key is not 'id':
            sensor.update_item(key, value=newSensor[key], action='PUT')
    return 'Sensor with id=%s updated successfully.' % (sensorId)
예제 #29
0
def users_user_id_put(userId, newUser):
    """ method to update a user using user id """
    try:
        user = User.get(userId)
    except Exception:
        return 'User with id=%s does not exist.' % (userId)
    
    # Need to check that if building ID is changed, the new Building exists
    if 'buildingId' in newuser:
    	try:
    		building = Building.get(newuser['buildingId'])
    	except Exception as e:
    		return 'Building with specified ID does not exist'
    
    attributes = user.attribute_values.keys()
    for key in newUser.keys():
        if key in attributes and key is not 'id':
            user.update_item(key, value=newUser[key], action='PUT')
    return 'User with id=%s updated successfully.' % (userId)
예제 #30
0
def users_user_id_put(userId, newUser):
    """ method to update a user using user id """
    try:
        user = User.get(userId)
    except Exception:
        return 'User with id=%s does not exist.' % (userId)

    # Need to check that if building ID is changed, the new Building exists
    if 'buildingId' in newuser:
        try:
            building = Building.get(newuser['buildingId'])
        except Exception as e:
            return 'Building with specified ID does not exist'

    attributes = user.attribute_values.keys()
    for key in newUser.keys():
        if key in attributes and key is not 'id':
            user.update_item(key, value=newUser[key], action='PUT')
    return 'User with id=%s updated successfully.' % (userId)
예제 #31
0
def sensors_sensor_id_put(sensorId, newSensor):
    """ method to update sensor using sensor id """
    try:
        sensor = Sensor.get(sensorId)
    except Exception:
        return 'Sensor with id=%s does not exist.' % (sensorId)
    
    # Need to check that if building ID is changed, the new Building exists
    if 'buildingId' in newSensor:
    	try:
    		building = Building.get(newSensor['buildingId'])
    	except Exception as e:
    		return 'Building with specified ID does not exist'
    
    attributes = sensor.attribute_values.keys()
    for key in newSensor.keys():
        if key in attributes and key is not 'id':
            sensor.update_item(key, value=newSensor[key], action='PUT')
    return 'Sensor with id=%s updated successfully.' % (sensorId)
예제 #32
0
def buildings_get() -> str:
    resultList = []
    for item in Building.scan():
        resultList.append(item.attribute_values)
    return resultList
예제 #33
0
from storageModels import Sensor, Building


mySens = Sensor(sensorId = 'yet another id',
                sensorType='type',
                buildingId = 'theHASH',
                roomId = 'another hash',
                data=['data', 'moredata'])
mySens.save()


newBuilding = Building(id = 'one other id something',
                       buildingId = '1',
                       building='Franks shop',
                       rooms = ['a', 'b'],
                       owner = 1,
                       users = ['a', 'b'],
                       sensors = ['a', 'b'],
                       robots = ['a', 'b'])
newBuilding.save()
예제 #34
0
from storageModels import Sensor, Building, Robot, User

Sensor.create_table(read_capacity_units=1, write_capacity_units=1)
Building.create_table(read_capacity_units=1, write_capacity_units=1)
Robot.create_table(read_capacity_units=1, write_capacity_units=1)
User.create_table(read_capacity_units=1, write_capacity_units=1)
예제 #35
0
def buildings_post() -> str:
    newID = str(uuid.uuid4())
    newObj = Building(id=newID)
    newObj.save()
    return newObj.attribute_values
예제 #36
0
def buildings_get() -> str:
    resultList = []
    for item in Building.scan():
        resultList.append(item.attribute_values)
    return resultList
예제 #37
0
def buildings_post() -> str:
    newID = str(uuid.uuid4())
    newObj = Building(id=newID)
    newObj.save()
    return newObj.attribute_values
예제 #38
0
def buildings_delete():
    """ method to delete all buildings """
    temp = []
    for item in Building.scan():
        temp.append(item.delete())
    return "%s items deleted." % len(temp)
예제 #39
0
def buildings_delete() -> str:
    temp = []
    for item in Building.scan():
        temp.append(item.delete())
    return "%s items deleted." % len(temp)
예제 #40
0
def buildings_get():
    """ method to get all buildings """
    resultlist = []
    for item in Building.scan():
        resultlist.append(item.attribute_values)
    return resultlist
예제 #41
0
from storageModels import Sensor, Building

mySens = Sensor(sensorId='yet another id',
                sensorType='type',
                buildingId='theHASH',
                roomId='another hash',
                data=['data', 'moredata'])
mySens.save()

newBuilding = Building(id='one other id something',
                       buildingId='1',
                       building='Franks shop',
                       rooms=['a', 'b'],
                       owner=1,
                       users=['a', 'b'],
                       sensors=['a', 'b'],
                       robots=['a', 'b'])
newBuilding.save()
예제 #42
0
def buildings_delete() -> str:
    temp = []
    for item in Building.scan():
        temp.append(item.delete())
    return "%s items deleted." % len(temp)
def buildings_get():
    """ method to get all buildings """
    resultlist = []	
    for item in Building.scan():
        resultlist.append(item.attribute_values)
    return resultlist
def buildings_delete():
    """ method to delete all buildings """
    temp = []
    for item in Building.scan():
        temp.append(item.delete())
    return "%s items deleted." % len(temp)