Esempio n. 1
0
 def post(self, device_id):
     """ Persist in database the temperature records performed by the device """
     request_id = str(uuid.uuid1())
     logging.info("SetRecord for device {0} - request {1}".format(device_id, request_id))
     self.response.headers['Content-Type'] = "application/json"
     device_ok = Device.is_active_registered_device(device_key, device_id)
     if not device_ok :
         msg_error = {"status": "KO",
                      "message": "The device is not registered and active",
                      "requestId": request_id
                      }
         logging.info(msg_error)
         return self.response.out.write(json.dumps(msg_error))
     try:
         temperature_data = json.loads(self.request.body)
     except ValueError:
         msg_error = {"status": "KO",
                      "message": "unable to convert JSON data",
                      "requestId": request_id
                      }
         logging.info(msg_error)
         return self.response.out.write(json.dumps(msg_error));
     except:
         msg_error = {"status": "KO",
                      "message": "unexpected error",
                      "requestId": request_id
                      }
         logging.info(msg_error)
         return self.response.out.write(json.dumps(msg_error));
     device = Device.query_device_id(device_key, device_id)
     nb_records = 0
     status = "OK"
     message = ""
     for temperature in temperature_data:
         try:
             tempData = TemperatureRecord()
             tempData.sensor_id = temperature['sensorId']
             tempData.temperature = temperature['temperature']
             device.add_temperature(tempData)
             nb_records += 1
         except Exception, e:
             message = "An unexpected error occurred while persisting data : {0}. {1}".format(temperature, e)
             status = "WARN"