Пример #1
0
def checkKeyAccess(key, execpt=""):
    if execpt:
        query = {"key_access": key, "_id": {'$ne': execpt}}
        result = deviceController.findOne(query)
    else:
        query = {"key_access": key}
        result = deviceController.findOne(query)

    print(result)

    if result['status']:
        return True
    else:
        return False
Пример #2
0
def generateCode(code):
    code = code + "-" + cloud9Lib.randomOnlyString(2) + cloud9Lib.randomNumber(
        2)
    #check if exist
    query = {"device_code": code}
    result = deviceController.findOne(query)
    if result['status']:
        return generateCode(code)
    else:
        return code
Пример #3
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

        if 'key_access' in data:
            if checkKeyAccess(data['key_access'], query['_id']):
                response = {
                    "status": False,
                    "message": "Key access is exits",
                    'data': json.loads(self.request.body)
                }
                self.write(response)
                return

        result = deviceController.findOne(query)
        if not result['status']:
            response = {
                "status": False,
                "message": "Data Not Found",
                'data': json.loads(self.request.body)
            }
        else:
            update = deviceController.update(query, data)
            if not update['status']:
                response = {
                    "status": False,
                    "message": "Failed to update",
                    "data": json.loads(self.request.body)
                }
            else:
                response = {"status": True, 'message': 'Update Success'}
        self.write(response)
Пример #4
0
def etl(collection,elastic_index,info,device_code,message):  #info --> , channel_type,topic,token_access,ip_sender,date_add_sensor
    insertQuery = info
    insertQuery['raw_message'] = message
    print("------------------")
    sys.stdout.flush()
    insertQuery['date_add_server'] = datetime.datetime.now(timezone('Asia/Jakarta')) #datetime.datetime.utcnow() #datetime.datetime.utcnow()
    insertQuery['date_add_server_unix'] = round(datetime.datetime.now(timezone('Asia/Jakarta')).timestamp() * 1000) #round(datetime.datetime.utcnow().timestamp() * 1000) #datetime.datetime.utcnow()
    insertQuery['device_code'] = device_code
    print(insertQuery['date_add_server'])
    print(insertQuery['date_add_server_unix'])

    queryDevice = {
        'device_code' : device_code
    }
    deviceData = deviceController.findOne(queryDevice)
    if deviceData['status'] == True :
        deviceData = deviceData['data']['field']

        for fieldData in deviceData:
            if type(fieldData) is dict:
                fieldName = list(fieldData.keys())[0]
            else:
                fieldName = fieldData
            insertQuery[fieldName] = extract_etl(fieldData,message,collection,device_code)

    insertElastic = copy.copy(insertQuery)
    # print(collection)
    # print(insertQuery)
    # print("------------------")
    sys.stdout.flush()
    result = db.insertData(collection,insertQuery)
    if result == []:
        response = {'status':False, 'message':"Add Failed"}               
    else:        
        response = {'status':True,'message':'Success','data':result}    
        mqttcom.publish("mqtt/elastic/"+elastic_index,insertElastic)    
        # elastic.insertOne(elastic_index,insertElastic) 
        del insertElastic['raw_message']
        mqttcom.publish("message/connector/sensor",insertElastic)    
    print(response)
    sys.stdout.flush()
    return cloud9Lib.jsonObject(response)
Пример #5
0
 def post(self):
     data = json.loads(self.request.body)
     query = data
     result = deviceController.findOne(query)
     # print(remote_ip)
     # 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 = deviceController.findOne(query)
        if not result['status']:
            response = {
                "status": False,
                "message": "Data Not Found",
                'data': json.loads(self.request.body)
            }
        else:
            delete = deviceController.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)