fix(pkg/rgbled): use action maps to turn on/off led colors
This commit is contained in:
		| @@ -26,45 +26,10 @@ var temperatureSensorModels = map[types.SensorModel]types.SensorModel{ | ||||
| // Configuration of flucky | ||||
| type Configuration struct { | ||||
| 	Device  *types.Device   `json:"device"` | ||||
| 	LEDs    []*types.LED    `json:"leds"` | ||||
| 	RGBLEDs []*types.RGBLED `json:"rgb_leds"` | ||||
| 	Sensors []*types.Sensor `json:"sensors"` | ||||
| } | ||||
|  | ||||
| // AddLED add a new LED | ||||
| func (c *Configuration) AddLED(led *types.LED) error { | ||||
|  | ||||
| 	// check if LEDID is a valid UUID string | ||||
| 	if !validUUID.MatchString(led.LEDID) { | ||||
| 		led.LEDID = uuid.NewV4().String() | ||||
| 	} | ||||
|  | ||||
| 	// check if sensor name and sensor uuid already exists | ||||
| 	for _, l := range c.LEDs { | ||||
| 		if l.LEDName == led.LEDName { | ||||
| 			return fmt.Errorf("LED %v already exists", led.LEDName) | ||||
| 		} | ||||
|  | ||||
| 		if l.LEDID == led.LEDID { | ||||
| 			return fmt.Errorf("LED %v with UUID %v already exists", led.LEDName, led.LEDID) | ||||
| 		} | ||||
|  | ||||
| 	} | ||||
|  | ||||
| 	// check if sensor has a valid device id | ||||
| 	if led.DeviceID != c.Device.DeviceID { | ||||
| 		led.DeviceID = c.Device.DeviceID | ||||
| 	} | ||||
|  | ||||
| 	// overwrite creation date | ||||
| 	led.CreationDate = time.Now() | ||||
|  | ||||
| 	// check | ||||
| 	c.LEDs = append(c.LEDs, led) | ||||
|  | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| // AddRGBLED add a new RGBLED | ||||
| func (c *Configuration) AddRGBLED(rgbLED *types.RGBLED) error { | ||||
|  | ||||
| @@ -404,25 +369,6 @@ func (c *Configuration) GetTemperatureSensorsByName(names []string) []sensor.Tem | ||||
| 	return c.convertTemperatureSensors(temperatureSensors) | ||||
| } | ||||
|  | ||||
| // RemoveLED deletes a LED by its name or its unique UUID | ||||
| func (c *Configuration) RemoveLED(name string) error { | ||||
| 	for i, led := range c.LEDs { | ||||
| 		// remove machted name | ||||
| 		if !validUUID.MatchString(name) && | ||||
| 			led.LEDName == name { | ||||
| 			c.LEDs = append(c.LEDs[:i], c.LEDs[i+1:]...) | ||||
| 			return nil | ||||
| 		} | ||||
| 		// remove machted uuid | ||||
| 		if validUUID.MatchString(name) && | ||||
| 			led.LEDID == name { | ||||
| 			c.LEDs = append(c.LEDs[:i], c.LEDs[i+1:]...) | ||||
| 			return nil | ||||
| 		} | ||||
| 	} | ||||
| 	return fmt.Errorf("Can not find LED %v", name) | ||||
| } | ||||
|  | ||||
| // RemoveRGBLED deletes a LED by its name or its unique UUID | ||||
| func (c *Configuration) RemoveRGBLED(name string) error { | ||||
| 	for i, rgbLED := range c.RGBLEDs { | ||||
| @@ -435,7 +381,7 @@ func (c *Configuration) RemoveRGBLED(name string) error { | ||||
| 		// remove machted uuid | ||||
| 		if validUUID.MatchString(name) && | ||||
| 			rgbLED.RGBLEDID == name { | ||||
| 			c.LEDs = append(c.LEDs[:i], c.LEDs[i+1:]...) | ||||
| 			c.RGBLEDs = append(c.RGBLEDs[:i], c.RGBLEDs[i+1:]...) | ||||
| 			return nil | ||||
| 		} | ||||
| 	} | ||||
| @@ -507,7 +453,7 @@ func (c *Configuration) convertRGBLEDs(rgbLEDs []*types.RGBLED) []rgbled.RGBLED | ||||
| 	leds := make([]rgbled.RGBLED, 0) | ||||
|  | ||||
| 	for _, rgbLED := range rgbLEDs { | ||||
| 		leds = append(leds, &rgbled.LED{ | ||||
| 		leds = append(leds, &rgbled.DefaultRGBLED{ | ||||
| 			RGBLED: rgbLED, | ||||
| 		}) | ||||
| 	} | ||||
|   | ||||
		Reference in New Issue
	
	Block a user