update & delete sensor inmemory

This commit is contained in:
Joel Schmid 2021-04-24 23:59:10 +02:00
parent 6391b39c8e
commit 442f205a2b

View file

@ -57,6 +57,26 @@ func (registry *inmemorySensorRegistry) ExistSensor(sensor *WeatherSensor) (bool
return false, nil
}
func (registry *inmemorySensorRegistry) DeleteSensor(sensorId uuid.UUID) error {
for i, s := range registry.weatherSensors {
if s.Id == sensorId {
registry.weatherSensors = remove(registry.weatherSensors, i)
return nil
}
}
return nil
}
func (registry *inmemorySensorRegistry) UpdateSensor(sensor *WeatherSensor) error {
for i, s := range registry.weatherSensors {
if s.Id == sensor.Id {
registry.weatherSensors[i] = sensor
}
}
return nil
}
func (registry *inmemorySensorRegistry) GetSensors() ([]*WeatherSensor, error) {
return registry.weatherSensors, nil
}
@ -64,3 +84,8 @@ func (registry *inmemorySensorRegistry) GetSensors() ([]*WeatherSensor, error) {
func (registry *inmemorySensorRegistry) Close() error {
return nil
}
func remove(s []*WeatherSensor, i int) []*WeatherSensor {
s[len(s)-1], s[i] = s[i], s[len(s)-1]
return s[:len(s)-1]
}