def deRegisterUser(self, userName): #(long userID): ''' To do: Remove the entries for the userID from the DB Remember to deregister from the jabber server as well apart from this. ''' try: u = User.get(User.username==userName) sensorObjects = SensorUserRel.select().where(SensorUserRel.user==u) for i in sensorObjects: i.delete_instance() queryObjects = Query.select().where(Query.username==u) for i in queryObjects: i.delete_instance() u.delete_instance() except User.DoesNotExist: print 'User ' + str(userName) + ' does not exist. Returning delete ACK anyway.' except: print 'Unknown error; returning!' return print str(userName) + " deleted successfully!" self.msgHandler.send_message(mto=str(self.rMessage['from']).split("/")[0], msubject="De-Registration Successful", mbody="Thank you!") return
def storeQueryInDB(self, qObj): ''' To do: Parse parameters of query from the received msg and store it in DB ''' foundFlag = False try: uname = User.get(User.username==str(self.qMessage['from']).split("@")[0]) foundFlag = True except User.DoesNotExist: print "User not in DB" return False qResults = Query.select().where(Query.queryNo==str(qObj['queryNo'])).count() if(qResults!=0): print 'Discarding message for queryNo: ' + str(qObj['queryNo']) + ' as it already existed in DB' return False if foundFlag: q = Query() q.username = uname q.queryNo = str(qObj['queryNo']) q.dataReqd = str(qObj['dataReqd']) if 'frequency' in qObj: q.frequency = eval(str(qObj['frequency'])) else: q.frequency = 0 if 'latitude' in qObj: q.Latitude = eval(str(qObj['latitude'])) else: q.Latitude = -1.0 if 'longitude' in qObj: q.Longitude = eval(str(qObj['longitude'])) else: q.Longitude = -1.0 q.fromTime = datetime.datetime.fromtimestamp(eval(str(qObj['fromTime']))/1000) q.toTime = datetime.datetime.fromtimestamp(eval(str(qObj['toTime']))/1000) q.expiryTime = datetime.datetime.fromtimestamp(eval(str(qObj['expiryTime']))/1000) q.Location = 'hardcoded'#str(qObj['location']) if 'activity' in qObj: q.Activity = str(qObj['activity']) else: q.Activity = "Don't Care" q.countMin = eval(str(qObj['countMin'])) q.countMax = eval(str(qObj['countMax'])) q.countReceived = 0 if 'radius' in qObj: q.Radius = eval(str(qObj['radius'])) else: q.Radius = -1 q.save() self.queryDBObject = q if(self.queryPossible()): self.sendAcknowledgement(True) return True else: self.sendAcknowledgement(False) return False