def message_insert(topic,message,messageStr): #Log Insert# print("Topic: "+topic) sys.stdout.flush() insertLog = { 'topic' : topic, 'channel_type':'mqtt', } if 'failed' in message : insertLog['raw_message'] = messageStr else: insertLog['raw_message'] = message #End Log Insert# queryChanel = { 'channel_code' : topic_list[topic], 'active': True } resultChannel = comChannelController.findOne(queryChanel) if not resultChannel['status']: response = {"status":False, "message":"Wrong communication topic",'data':json.loads(self.request.body)} insertLog['response'] = response commLogController.add(insertLog); else: channelData = resultChannel['data'] infoMqtt = { 'topic' : topic, 'channel_type':'mqtt', } if 'date_add' in message : try: if(isinstance(message['date_add'],int)): infoMqtt['date_add_sensor_unix'] = message['date_add'] try: today = datetime.fromtimestamp(round(message['date_add']),timezone('Asia/Jakarta')) #datetime.fromtimestamp(round(message['date_add'])) except: today = datetime.fromtimestamp(round(message['date_add']/1000),timezone('Asia/Jakarta')) #datetime.fromtimestamp(round(message['date_add']/1000)) infoMqtt['date_add_sensor'] = today else: infoMqtt['date_add_sensor'] = datetime.strptime(message['date_add'],'%Y-%m-%d %H:%M:%S') except: print("error") sys.stdout.flush() infoMqtt['date_add_sensor'] = message['date_add'] else : infoMqtt['date_add_sensor'] = None if 'device_code' in message : insert = commETLController.etl(channelData['collection_name'],channelData['index_log'],infoMqtt,message['device_code'],message) else : insert = commETLController.nonetl(channelData['collection_name'],channelData['index_log'],infoMqtt,message) if not insert['status']: response = {"status":False, "message":"Failed to add", 'data':json.loads(self.request.body)} else: response = {'message':'Success','status':True} insertLog['response'] = response commLogController.add(insertLog);
def communication_update(fillData): if 'http-post' in fillData: query = {'channel_code': 'http-post-' + fillData['token_access']} commdata = comChannelController.findOne(query)['data'] if commdata: if commdata['active'] != fillData['http-post']: updateHttp = query updateHttp['active'] = fillData['http-post'] updateHttp['channel_type'] = 'http-post' updateHttp['topic'] = commdata['topic'] comChannelController.update(query, updateHttp) if 'mqtt' in fillData: query = {'channel_code': 'mqtt-' + fillData['token_access']} commdata = comChannelController.findOne(query)['data'] if commdata: if commdata['active'] != fillData['mqtt']: updateMqtt = query updateMqtt['active'] = fillData['mqtt'] updateMqtt['channel_type'] = 'mqtt' updateMqtt['topic'] = commdata['topic'] comChannelController.update(query, updateMqtt) if 'nats' in fillData: query = {'channel_code': 'nats-' + fillData['token_access']} commdata = comChannelController.findOne(query)['data'] if commdata: if commdata['active'] != fillData['nats']: updateNats = query updateNats['active'] = fillData['nats'] updateNats['channel_type'] = 'nats' updateNats['topic'] = commdata['topic'] comChannelController.update(query, updateNats) if 'kafka' in fillData: query = {'channel_code': 'kafka-' + fillData['token_access']} commdata = comChannelController.findOne(query)['data'] if commdata: if commdata['active'] != fillData['kafka']: updateKafka = query updateKafka['active'] = fillData['kafka'] updateKafka['channel_type'] = 'kafka' updateKafka['topic'] = commdata['topic'] comChannelController.update(query, updateKafka)
def generateToken(codename): code = cloud9Lib.randomStringLower(5) code = code + codename + cloud9Lib.randomStringLower(6) #check if exist query = {"token_access": code} result = comChannelController.findOne(query) if result['status']: return generateToken(codename) else: return code
def generateCode(): code = cloud9Lib.randomStringLower(6) #check if exist query = {"code_name": code} result = comChannelController.findOne(query) if result['status']: return generateCode() else: return code
def post(self): data = json.loads(self.request.body) query = {} result = comChannelController.findOne(query) # print(result) # print("------------------") # sys.stdout.flush() if not result['status']: response = { "status": False, "message": "Data Not Found", 'data': json.loads(self.request.body) } else: response = { "status": True, 'message': 'Success', 'data': result['data'] } self.write(response)
def post(self): data = json.loads(self.request.body) if 'id' not in data: response = { "status": False, "message": "Id Not Found", 'data': json.loads(self.request.body) } self.write(response) return try: query = {"_id": ObjectId(data["id"])} except: response = { "status": False, "message": "Wrong id", 'data': json.loads(self.request.body) } self.write(response) return result = comChannelController.findOne(query) if not result['status']: response = { "status": False, "message": "Data Not Found", 'data': json.loads(self.request.body) } else: delete = comChannelController.delete(query) if not delete['status']: response = { "status": False, "message": "Failed to delete", "data": json.loads(self.request.body) } else: response = {"status": True, 'message': 'Delete Success'} self.write(response)
def post(self,token_access): data = json.loads(self.request.body) if not token_access: response = {"status":False, "message":"Token Acces not found",'data':json.loads(self.request.body)} self.write(response) return #Log Insert# remote_ip = self.request.headers.get("X-Real-IP") or \ self.request.headers.get("X-Forwarded-For") or \ self.request.remote_ip insertLog = { 'token_access' : token_access, 'ip_sender':remote_ip, 'channel_type':'http-post', 'raw_message':data } #End Log Insert# queryGroup = { 'token_access' : token_access, 'active': True } resultChannel = comChannelController.findOne(queryGroup) if not resultChannel['status']: response = {"status":False, "message":"Token Access not match",'data':json.loads(self.request.body)} insertLog['response'] = response commLogController.add(insertLog); self.write(response) return else: channelData = resultChannel['data'] infoHttp = { 'token_access' : token_access, 'ip_sender':remote_ip, 'channel_type':'http-post', } if 'date_add' in data : try: if(isinstance(data['date_add'],int)): infoHttp['date_add_sensor_unix'] = data['date_add'] try: today = datetime.fromtimestamp(round(data['date_add']),timezone('Asia/Jakarta')) #datetime.fromtimestamp(round(message['date_add'])) except: today = datetime.fromtimestamp(round(data['date_add']/1000),timezone('Asia/Jakarta')) #datetime.fromtimestamp(round(message['date_add']/1000)) infoHttp['date_add_sensor'] = today else: infoHttp['date_add_sensor'] = datetime.strptime(data['date_add'],'%Y-%m-%d %H:%M:%S') except: print("error") infoHttp['date_add_sensor'] = data['date_add'] else : infoHttp['date_add_sensor'] = None if 'device_code' in data : insert = commETLController.etl(channelData['collection_name'],channelData['index_log'],infoHttp,data['device_code'],data) else : insert = commETLController.nonetl(channelData['collection_name'],channelData['index_log'],infoHttp,data) if not insert['status']: response = {"status":False, "message":"Failed to add", 'data':json.loads(self.request.body)} else: response = {'message':'Success','status':True} insertLog['response'] = response commLogController.add(insertLog); self.write(response)