fix: cli temperature read

changes:
- fix: read temperature values without daemon
  Add subcommand to read temperature values without starting the daemon

- fix: implement measured value types
  Replace measured value types with constants

- fix: add sensor pipelines
  Add functions which returns a channel with measured values

- fix: filter measured values from a channel
  Add functions to filter measured values by sensor id or measured
  value types.
This commit is contained in:
2020-09-21 19:36:42 +02:00
parent 7cbd80c726
commit 3a090d190e
17 changed files with 481 additions and 77 deletions

View File

@ -115,7 +115,7 @@ func (postgres *Postgres) InsertDevices(ctx context.Context, devices ...*types.D
// InsertMeasuredValues into the database
func (postgres *Postgres) InsertMeasuredValues(ctx context.Context, measuredValues ...*types.MeasuredValue) error {
splittedMeasuredValues := make(map[string][]*types.MeasuredValue, 0)
splittedMeasuredValues := make(map[types.MeasuredValueType][]*types.MeasuredValue, 0)
for _, measuredValue := range measuredValues {
if _, ok := splittedMeasuredValues[measuredValue.ValueType]; !ok {
@ -164,11 +164,11 @@ func (postgres *Postgres) InsertMeasuredValues(ctx context.Context, measuredValu
var queryFile string
switch measuredValueType {
case "humidity":
case types.Humidity:
queryFile = "insertHumidity.sql"
case "pressure":
case types.Pressure:
queryFile = "insertPressure.sql"
case "temperature":
case types.Temperature:
queryFile = "insertTemperature.sql"
default:
tx.Rollback()
@ -361,7 +361,7 @@ func (postgres *Postgres) SelectHumidity(ctx context.Context, id string) (*types
}
for _, measuredValue := range measuredValues {
measuredValue.ValueType = "humidity"
measuredValue.ValueType = types.Humidity
}
return measuredValues[0], nil
@ -391,7 +391,7 @@ func (postgres *Postgres) SelectHumidities(ctx context.Context) ([]*types.Measur
}
for _, measuredValue := range measuredValues {
measuredValue.ValueType = "humidity"
measuredValue.ValueType = types.Humidity
}
return measuredValues, nil
@ -462,7 +462,7 @@ func (postgres *Postgres) SelectPressure(ctx context.Context, id string) (*types
}
for _, measuredValue := range measuredValues {
measuredValue.ValueType = "pressure"
measuredValue.ValueType = types.Pressure
}
return measuredValues[0], nil
@ -492,7 +492,7 @@ func (postgres *Postgres) SelectPressures(ctx context.Context) ([]*types.Measure
}
for _, measuredValue := range measuredValues {
measuredValue.ValueType = "pressure"
measuredValue.ValueType = types.Pressure
}
return measuredValues, nil
@ -622,7 +622,7 @@ func (postgres *Postgres) SelectTemperature(ctx context.Context, id string) (*ty
}
for _, measuredValue := range measuredValues {
measuredValue.ValueType = "temperatures"
measuredValue.ValueType = types.Temperature
}
return measuredValues[0], nil
@ -652,7 +652,7 @@ func (postgres *Postgres) SelectTemperatures(ctx context.Context) ([]*types.Meas
}
for _, measuredValue := range measuredValues {
measuredValue.ValueType = "temperatures"
measuredValue.ValueType = types.Temperature
}
return measuredValues, nil

View File

@ -114,7 +114,7 @@ func (sqlite *SQLite) InsertDevices(ctx context.Context, devices ...*types.Devic
// InsertMeasuredValues into the database
func (sqlite *SQLite) InsertMeasuredValues(ctx context.Context, measuredValues ...*types.MeasuredValue) error {
splittedMeasuredValues := make(map[string][]*types.MeasuredValue, 0)
splittedMeasuredValues := make(map[types.MeasuredValueType][]*types.MeasuredValue, 0)
for _, measuredValue := range measuredValues {
if _, ok := splittedMeasuredValues[measuredValue.ValueType]; !ok {
@ -163,11 +163,11 @@ func (sqlite *SQLite) InsertMeasuredValues(ctx context.Context, measuredValues .
var queryFile string
switch measuredValueType {
case "humidity":
case types.Humidity:
queryFile = "insertHumidity.sql"
case "pressure":
case types.Pressure:
queryFile = "insertPressure.sql"
case "temperature":
case types.Temperature:
queryFile = "insertTemperature.sql"
default:
tx.Rollback()
@ -360,7 +360,7 @@ func (sqlite *SQLite) SelectHumidity(ctx context.Context, id string) (*types.Mea
}
for _, measuredValue := range measuredValues {
measuredValue.ValueType = "humidity"
measuredValue.ValueType = types.Humidity
}
return measuredValues[0], nil
@ -390,7 +390,7 @@ func (sqlite *SQLite) SelectHumidities(ctx context.Context) ([]*types.MeasuredVa
}
for _, measuredValue := range measuredValues {
measuredValue.ValueType = "humidity"
measuredValue.ValueType = types.Humidity
}
return measuredValues, nil
@ -461,7 +461,7 @@ func (sqlite *SQLite) SelectPressure(ctx context.Context, id string) (*types.Mea
}
for _, measuredValue := range measuredValues {
measuredValue.ValueType = "pressure"
measuredValue.ValueType = types.Pressure
}
return measuredValues[0], nil
@ -491,7 +491,7 @@ func (sqlite *SQLite) SelectPressures(ctx context.Context) ([]*types.MeasuredVal
}
for _, measuredValue := range measuredValues {
measuredValue.ValueType = "pressure"
measuredValue.ValueType = types.Pressure
}
return measuredValues, nil
@ -621,7 +621,7 @@ func (sqlite *SQLite) SelectTemperature(ctx context.Context, id string) (*types.
}
for _, measuredValue := range measuredValues {
measuredValue.ValueType = "temperatures"
measuredValue.ValueType = types.Temperature
}
return measuredValues[0], nil
@ -651,7 +651,7 @@ func (sqlite *SQLite) SelectTemperatures(ctx context.Context) ([]*types.Measured
}
for _, measuredValue := range measuredValues {
measuredValue.ValueType = "temperatures"
measuredValue.ValueType = types.Temperature
}
return measuredValues, nil