Пример #1
0
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);
Пример #2
0
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)
Пример #3
0
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
Пример #4
0
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
Пример #5
0
 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)
Пример #6
0
    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)
Пример #7
0
  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)