fix(pkg/logfile/csv): read from csv file
This commit is contained in:
parent
3791723230
commit
bbcccd7479
@ -42,22 +42,23 @@ func (cl *csvLogfile) ReadHumidities() ([]*types.Humidity, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (cl *csvLogfile) ReadTemperatures() ([]*types.Temperature, error) {
|
func (cl *csvLogfile) ReadTemperatures() ([]*types.Temperature, error) {
|
||||||
|
|
||||||
if _, err := os.Stat(cl.logfile); os.IsNotExist(err) {
|
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)
|
temperatures := make([]*types.Temperature, 0)
|
||||||
|
|
||||||
f, err := os.Open(cl.logfile)
|
f, err := os.Open(cl.logfile)
|
||||||
if err != nil {
|
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()
|
defer f.Close()
|
||||||
|
|
||||||
r := csv.NewReader(f)
|
r := csv.NewReader(f)
|
||||||
records, err := r.ReadAll()
|
records, err := r.ReadAll()
|
||||||
if err != nil {
|
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 {
|
for _, record := range records {
|
||||||
@ -65,14 +66,14 @@ func (cl *csvLogfile) ReadTemperatures() ([]*types.Temperature, error) {
|
|||||||
for _, j := range []int{2, 3} {
|
for _, j := range []int{2, 3} {
|
||||||
time, err := time.Parse(timeFormat, record[j])
|
time, err := time.Parse(timeFormat, record[j])
|
||||||
if err != nil {
|
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)
|
times = append(times, time)
|
||||||
}
|
}
|
||||||
|
|
||||||
temperatureValue, err := strconv.ParseFloat(record[1], 64)
|
temperatureValue, err := strconv.ParseFloat(record[1], 64)
|
||||||
if err != nil {
|
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{
|
temperature := &types.Temperature{
|
||||||
@ -86,7 +87,7 @@ func (cl *csvLogfile) ReadTemperatures() ([]*types.Temperature, error) {
|
|||||||
if len(record) == 6 && record[5] != "" {
|
if len(record) == 6 && record[5] != "" {
|
||||||
temperatureCreationDate, err := time.Parse(timeFormat, record[5])
|
temperatureCreationDate, err := time.Parse(timeFormat, record[5])
|
||||||
if err != nil {
|
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
|
temperature.CreationDate = &temperatureCreationDate
|
||||||
@ -95,7 +96,7 @@ func (cl *csvLogfile) ReadTemperatures() ([]*types.Temperature, error) {
|
|||||||
if len(record) == 7 && record[6] != "" {
|
if len(record) == 7 && record[6] != "" {
|
||||||
temperatureUpdateDate, err := time.Parse(timeFormat, record[6])
|
temperatureUpdateDate, err := time.Parse(timeFormat, record[6])
|
||||||
if err != nil {
|
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
|
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.TemperatureTillDate.Format(timeFormat)),
|
||||||
fmt.Sprintf("%v", temperature.SensorID),
|
fmt.Sprintf("%v", temperature.SensorID),
|
||||||
fmt.Sprintf("%v", temperature.CreationDate.Format(timeFormat)),
|
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
|
|
Loading…
Reference in New Issue
Block a user