query unknown fieldtypes in db
This commit is contained in:
parent
5aed4560e9
commit
e483794ce1
3 changed files with 12 additions and 14 deletions
|
@ -23,7 +23,7 @@ func NewInfluxStorage(cfg config.InfluxConfig) (*influxStorage, error) {
|
||||||
influx := new(influxStorage)
|
influx := new(influxStorage)
|
||||||
influx.config = cfg
|
influx.config = cfg
|
||||||
influx.client = influxdb2.NewClient(cfg.Host, cfg.Token)
|
influx.client = influxdb2.NewClient(cfg.Host, cfg.Token)
|
||||||
influx.measurement = "data"
|
influx.measurement = "weather-data"
|
||||||
log.Print("Successfully created influx-client")
|
log.Print("Successfully created influx-client")
|
||||||
return influx, nil
|
return influx, nil
|
||||||
}
|
}
|
||||||
|
@ -60,8 +60,8 @@ func (storage *influxStorage) createFluxQuery(query *WeatherQuery) string {
|
||||||
fields := ""
|
fields := ""
|
||||||
concat := ""
|
concat := ""
|
||||||
|
|
||||||
for _, sensorValueType := range GetSensorValueTypes() {
|
for sensorValueType, value := range query.Values {
|
||||||
if query.Values[sensorValueType] {
|
if value {
|
||||||
fields = fmt.Sprintf("%v %v r._field == \"%v\"", fields, concat, string(sensorValueType))
|
fields = fmt.Sprintf("%v %v r._field == \"%v\"", fields, concat, string(sensorValueType))
|
||||||
concat = "or"
|
concat = "or"
|
||||||
}
|
}
|
||||||
|
@ -98,11 +98,7 @@ func (storage *influxStorage) executeFluxQuery(query string) ([]*WeatherData, er
|
||||||
|
|
||||||
data, contained := containsWeatherData(queryResults, sensorId, timestamp)
|
data, contained := containsWeatherData(queryResults, sensorId, timestamp)
|
||||||
|
|
||||||
for _, sensorValueType := range GetSensorValueTypes() {
|
data.Values[SensorValueType(result.Record().Field())] = result.Record().Value().(float64)
|
||||||
if result.Record().Field() == string(sensorValueType) {
|
|
||||||
data.Values[sensorValueType] = result.Record().Value().(float64)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if !contained {
|
if !contained {
|
||||||
data.SensorId = sensorId
|
data.SensorId = sensorId
|
||||||
|
|
|
@ -56,8 +56,8 @@ func NewWeatherData() *WeatherData {
|
||||||
|
|
||||||
//OnlyQueriedValues remove all values not contained by the WeatherQuery
|
//OnlyQueriedValues remove all values not contained by the WeatherQuery
|
||||||
func (data *WeatherData) OnlyQueriedValues(query *WeatherQuery) *WeatherData {
|
func (data *WeatherData) OnlyQueriedValues(query *WeatherQuery) *WeatherData {
|
||||||
for _, sensorValueType := range GetSensorValueTypes() {
|
for sensorValueType, value := range query.Values {
|
||||||
if !query.Values[sensorValueType] {
|
if !value {
|
||||||
delete(data.Values, sensorValueType)
|
delete(data.Values, sensorValueType)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -57,10 +57,12 @@ func ParseFromUrlQuery(query url.Values) (*WeatherQuery, error) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, sensorValueType := range GetSensorValueTypes() {
|
for k, v := range query {
|
||||||
queryParam := query.Get(string(sensorValueType))
|
if k == "start" || k == "end" {
|
||||||
if bval, err := strconv.ParseBool(queryParam); err == nil {
|
continue
|
||||||
result.Values[sensorValueType] = bval
|
}
|
||||||
|
if bval, err := strconv.ParseBool(v[0]); err == nil {
|
||||||
|
result.Values[SensorValueType(k)] = bval
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue