fix(pkg/logfile): support write and read air pressure values from json logfile
This commit is contained in:
		| @@ -58,6 +58,15 @@ func (jl *jsonLogfile) Read() ([]types.MeasuredValue, error) { | ||||
| 			measuredValues = append(measuredValues, temperature) | ||||
| 		} | ||||
|  | ||||
| 		if _, ok := mappedMeasuredValue["pressure_id"]; ok { | ||||
| 			pressure, err := jl.transformPressure(mappedMeasuredValue) | ||||
| 			if err != nil { | ||||
| 				log.Printf("Can not unmarshal pressure from map: %v", err) | ||||
| 				continue | ||||
| 			} | ||||
| 			measuredValues = append(measuredValues, pressure) | ||||
| 		} | ||||
|  | ||||
| 		if _, ok := mappedMeasuredValue["humidity_id"]; ok { | ||||
| 			humidity, err := jl.transformHumidity(mappedMeasuredValue) | ||||
| 			if err != nil { | ||||
| @@ -118,6 +127,52 @@ func (jl *jsonLogfile) transformHumidity(mappedMeasuredValue map[string]interfac | ||||
| 	return humidity, nil | ||||
| } | ||||
|  | ||||
| func (jl *jsonLogfile) transformPressure(mappedMeasuredValue map[string]interface{}) (types.MeasuredValue, error) { | ||||
|  | ||||
| 	pressure := &types.Pressure{ | ||||
| 		PressureID:   mappedMeasuredValue["pressure_id"].(string), | ||||
| 		SensorID:     mappedMeasuredValue["sensor_id"].(string), | ||||
| 		CreationDate: nil, | ||||
| 		UpdateDate:   nil, | ||||
| 	} | ||||
|  | ||||
| 	pressureValue, err := strconv.ParseFloat(mappedMeasuredValue["pressure_value"].(string), 64) | ||||
| 	if err != nil { | ||||
| 		return nil, fmt.Errorf("%v for pressure value. PressureID %v: %v", errorParseFloat, mappedMeasuredValue["pressure_id"].(string), err) | ||||
| 	} | ||||
| 	pressure.PressureValue = pressureValue | ||||
|  | ||||
| 	pressureFromDate, err := time.Parse(timeFormat, mappedMeasuredValue["pressure_from_date"].(string)) | ||||
| 	if err != nil { | ||||
| 		return nil, fmt.Errorf("%v for pressure from date. PressureID %v: %v", errorParseTime, mappedMeasuredValue["pressure_id"].(string), err) | ||||
| 	} | ||||
| 	pressure.PressureFromDate = pressureFromDate | ||||
|  | ||||
| 	pressureTillDate, err := time.Parse(timeFormat, mappedMeasuredValue["pressure_till_date"].(string)) | ||||
| 	if err != nil { | ||||
| 		return nil, fmt.Errorf("%v for pressure till date. PressureID %v: %v", errorParseTime, mappedMeasuredValue["pressure_id"].(string), err) | ||||
| 	} | ||||
| 	pressure.PressureTillDate = pressureTillDate | ||||
|  | ||||
| 	if mappedMeasuredValue["creation_date"] != nil { | ||||
| 		creationDate, err := time.Parse(timeFormat, mappedMeasuredValue["creation_date"].(string)) | ||||
| 		if err != nil { | ||||
| 			return nil, fmt.Errorf("%v for creation date. PressureID %v: %v", errorParseTime, mappedMeasuredValue["pressure_id"].(string), err) | ||||
| 		} | ||||
| 		pressure.CreationDate = &creationDate | ||||
| 	} | ||||
|  | ||||
| 	if mappedMeasuredValue["update_date"] != nil { | ||||
| 		updateDate, err := time.Parse(timeFormat, mappedMeasuredValue["update_date"].(string)) | ||||
| 		if err != nil { | ||||
| 			return nil, fmt.Errorf("%v for update date. PressureID %v: %v", errorParseTime, mappedMeasuredValue["pressure_id"].(string), err) | ||||
| 		} | ||||
| 		pressure.UpdateDate = &updateDate | ||||
| 	} | ||||
|  | ||||
| 	return pressure, nil | ||||
| } | ||||
|  | ||||
| func (jl *jsonLogfile) transformTemperature(mappedMeasuredValue map[string]interface{}) (types.MeasuredValue, error) { | ||||
|  | ||||
| 	temperature := &types.Temperature{ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user