diff --git a/storage/influxdb-storage.go b/storage/influxdb-storage.go index 3a9a3e6..49ec069 100644 --- a/storage/influxdb-storage.go +++ b/storage/influxdb-storage.go @@ -23,7 +23,7 @@ func NewInfluxStorage(cfg config.InfluxConfig) (*influxStorage, error) { influx := new(influxStorage) influx.config = cfg influx.client = influxdb2.NewClient(cfg.Host, cfg.Token) - influx.measurement = "data" + influx.measurement = "weather-data" log.Print("Successfully created influx-client") return influx, nil } @@ -60,8 +60,8 @@ func (storage *influxStorage) createFluxQuery(query *WeatherQuery) string { fields := "" concat := "" - for _, sensorValueType := range GetSensorValueTypes() { - if query.Values[sensorValueType] { + for sensorValueType, value := range query.Values { + if value { fields = fmt.Sprintf("%v %v r._field == \"%v\"", fields, concat, string(sensorValueType)) concat = "or" } @@ -98,11 +98,7 @@ func (storage *influxStorage) executeFluxQuery(query string) ([]*WeatherData, er data, contained := containsWeatherData(queryResults, sensorId, timestamp) - for _, sensorValueType := range GetSensorValueTypes() { - if result.Record().Field() == string(sensorValueType) { - data.Values[sensorValueType] = result.Record().Value().(float64) - } - } + data.Values[SensorValueType(result.Record().Field())] = result.Record().Value().(float64) if !contained { data.SensorId = sensorId diff --git a/storage/weather-data.go b/storage/weather-data.go index 6b2ec66..3c51014 100644 --- a/storage/weather-data.go +++ b/storage/weather-data.go @@ -56,8 +56,8 @@ func NewWeatherData() *WeatherData { //OnlyQueriedValues remove all values not contained by the WeatherQuery func (data *WeatherData) OnlyQueriedValues(query *WeatherQuery) *WeatherData { - for _, sensorValueType := range GetSensorValueTypes() { - if !query.Values[sensorValueType] { + for sensorValueType, value := range query.Values { + if !value { delete(data.Values, sensorValueType) } } diff --git a/storage/weather-query.go b/storage/weather-query.go index 69897fc..81cba00 100644 --- a/storage/weather-query.go +++ b/storage/weather-query.go @@ -57,10 +57,12 @@ func ParseFromUrlQuery(query url.Values) (*WeatherQuery, error) { } } - for _, sensorValueType := range GetSensorValueTypes() { - queryParam := query.Get(string(sensorValueType)) - if bval, err := strconv.ParseBool(queryParam); err == nil { - result.Values[sensorValueType] = bval + for k, v := range query { + if k == "start" || k == "end" { + continue + } + if bval, err := strconv.ParseBool(v[0]); err == nil { + result.Values[SensorValueType(k)] = bval } }