fix(pkg/logfile/csv): read from csv file
This commit is contained in:
		| @@ -42,22 +42,23 @@ func (cl *csvLogfile) ReadHumidities() ([]*types.Humidity, error) { | ||||
| } | ||||
|  | ||||
| func (cl *csvLogfile) ReadTemperatures() ([]*types.Temperature, error) { | ||||
|  | ||||
| 	if _, err := os.Stat(cl.logfile); os.IsNotExist(err) { | ||||
| 		return nil, fmt.Errorf("%v: %v", errorLogfileNotFound, cl.logfile) | ||||
| 		return nil, fmt.Errorf("%v %v: %v", errorLogfileNotFound, cl.logfile, err) | ||||
| 	} | ||||
|  | ||||
| 	temperatures := make([]*types.Temperature, 0) | ||||
|  | ||||
| 	f, err := os.Open(cl.logfile) | ||||
| 	if err != nil { | ||||
| 		return nil, fmt.Errorf("%v: %v", errorLogfileOpen, cl.logfile) | ||||
| 		return nil, fmt.Errorf("%v %v: %v", errorLogfileOpen, cl.logfile, err) | ||||
| 	} | ||||
| 	defer f.Close() | ||||
|  | ||||
| 	r := csv.NewReader(f) | ||||
| 	records, err := r.ReadAll() | ||||
| 	if err != nil { | ||||
| 		return nil, fmt.Errorf("%v: %v", errorLogfileDecode, cl.logfile) | ||||
| 		return nil, fmt.Errorf("%v %v: %v", errorLogfileDecode, cl.logfile, err) | ||||
| 	} | ||||
|  | ||||
| 	for _, record := range records { | ||||
| @@ -65,14 +66,14 @@ func (cl *csvLogfile) ReadTemperatures() ([]*types.Temperature, error) { | ||||
| 		for _, j := range []int{2, 3} { | ||||
| 			time, err := time.Parse(timeFormat, record[j]) | ||||
| 			if err != nil { | ||||
| 				return nil, fmt.Errorf("%v: %v", errorParseTime, record[j]) | ||||
| 				return nil, fmt.Errorf("%v %v: %v", errorParseTime, record[j], err) | ||||
| 			} | ||||
| 			times = append(times, time) | ||||
| 		} | ||||
|  | ||||
| 		temperatureValue, err := strconv.ParseFloat(record[1], 64) | ||||
| 		if err != nil { | ||||
| 			return nil, fmt.Errorf("%v: %v", errorParseFloat, record[1]) | ||||
| 			return nil, fmt.Errorf("%v %v: %v", errorParseFloat, record[1], err) | ||||
| 		} | ||||
|  | ||||
| 		temperature := &types.Temperature{ | ||||
| @@ -86,7 +87,7 @@ func (cl *csvLogfile) ReadTemperatures() ([]*types.Temperature, error) { | ||||
| 		if len(record) == 6 && record[5] != "" { | ||||
| 			temperatureCreationDate, err := time.Parse(timeFormat, record[5]) | ||||
| 			if err != nil { | ||||
| 				return nil, fmt.Errorf("%v: %v", errorParseTime, record[5]) | ||||
| 				return nil, fmt.Errorf("%v %v: %v", errorParseTime, record[5], err) | ||||
| 			} | ||||
|  | ||||
| 			temperature.CreationDate = &temperatureCreationDate | ||||
| @@ -95,7 +96,7 @@ func (cl *csvLogfile) ReadTemperatures() ([]*types.Temperature, error) { | ||||
| 		if len(record) == 7 && record[6] != "" { | ||||
| 			temperatureUpdateDate, err := time.Parse(timeFormat, record[6]) | ||||
| 			if err != nil { | ||||
| 				return nil, fmt.Errorf("%v: %v", errorParseTime, record[6]) | ||||
| 				return nil, fmt.Errorf("%v %v: %v", errorParseTime, record[6], err) | ||||
| 			} | ||||
|  | ||||
| 			temperature.UpdateDate = &temperatureUpdateDate | ||||
| @@ -166,6 +167,7 @@ func (cl *csvLogfile) WriteTemperatures(temperatures []*types.Temperature) error | ||||
| 				fmt.Sprintf("%v", temperature.TemperatureTillDate.Format(timeFormat)), | ||||
| 				fmt.Sprintf("%v", temperature.SensorID), | ||||
| 				fmt.Sprintf("%v", temperature.CreationDate.Format(timeFormat)), | ||||
| 				fmt.Sprintf(""), | ||||
| 			} | ||||
| 		} | ||||
|  | ||||
|   | ||||
							
								
								
									
										2
									
								
								pkg/logfile/test/csv/validTemperatures_01.csv
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								pkg/logfile/test/csv/validTemperatures_01.csv
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | ||||
| a469503b-fc16-4e72-8d29-7eeee08ba957,24.562,2019-06-14 21:15:28.504051541 +0200,2019-06-14 21:18:07.384104493 +0200,84eac248-6927-4db6-b6f9-7891ce2d301e,2019-06-14 21:18:07.465885864 +0200,2019-06-14 21:18:07.46587076 +0200 | ||||
| 5f119ba3-bcea-4c3b-aabb-0406ea70f7e1,24.375,2019-06-14 21:15:28.583856443 +0200,2019-06-14 21:18:07.463893776 +0200,efcd755e-82d1-4789-a50b-355b8735b8d8,2019-06-14 21:18:07.465885864 +0200,2019-06-14 21:18:07.46587701 +0200 | ||||
| 
 | 
		Reference in New Issue
	
	Block a user