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"