def __retrieveResponse( data ): returnData = {} for deviceKey in data.keys(): deviceObj = GardenModels.getDevice( identifier = deviceKey) logger.debug( "DeviceObj: " + deviceObj.identifier ) for dataTypeKey in data[ deviceKey ]: dataTypeObj = GardenModels.getDataType( identifier = dataTypeKey ) logger.debug( "DataTypeObj: " + dataTypeObj.identifier ) returnData[ deviceObj.identifier ] = {} responseObj= GardenModels.getResponse( device = deviceObj, datatype = dataTypeObj) if responseObj == None: return False logger.debug( "Response Object: " + str( responseObj.identifier ) ) returnData[ responseObj.device.identifier ][ responseObj.datatype.identifier ] = \ responseObj.value #endfor returnDataString = DataFormat.formatJsonResponse( returnData ) logger.debug("Response: " + returnDataString ) return returnDataString
def request( userObj , data ): logger.info("Screening DATA Request") for deviceKey in data.keys(): deviceObj = GardenModels.getDevice( identifier = deviceKey) if deviceObj == None: return False logger.debug( "DeviceObj: " + deviceObj.identifier ) # making sure device belongs to the user if deviceObj.user.identifier != userObj.identifier: logger.error( "Device Does Not Belong To User: "******"DataTypeObj: " + dataTypeObj.identifier ) __prepareResponseObject( deviceObj , dataTypeObj ) #endfor #endfor return __storeData( data )
def response( userObj, data ): logger.info("Screening RESPONSE Request") for deviceKey in data.keys(): deviceObj = GardenModels.getDevice( identifier = deviceKey) if deviceObj == None: return False logger.debug( "DeviceObj: " + deviceObj.identifier ) # making sure device belongs to the user if deviceObj.user.identifier != userObj.identifier: logger.error( "Device Does Not Belong To User: "******"DataTypeObj: " + dataTypeObj.identifier ) #endfor #endfor return __retrieveResponse( data )
def __storeData( data ): logger.info("Storing Data For Request") for deviceKey in data.keys(): logger.debug( "Processing Device: " + deviceKey ) deviceObj = GardenModels.getDevice( identifier = deviceKey) # device may have different data types for dataTypeKey in data[ deviceKey ].keys(): logger.debug( "Processing DataType: " + dataTypeKey ) dataTypeObj = GardenModels.getDataType( identifier = dataTypeKey ) logger.info( "Converting Data" ) storeData = json.dumps( data[ deviceKey ][ dataTypeKey ] ) logger.debug( storeData ) logger.info( "Creating Data Objects -> Device: " + deviceKey + " Type: " + dataTypeKey ) GardenModels.setData( deviceObj , dataTypeObj , storeData ) #endfor logger.info( "Done with Device" ) #endfor return 1