mirror of
https://github.com/kaaninchen/Laterna.git
synced 2026-09-17 19:12:48 +00:00
feat: toggle controller state on/off
This commit is contained in:
@@ -34,6 +34,7 @@ func InitDB() {
|
||||
id INTEGER PRIMARY KEY,
|
||||
token_hash TEXT,
|
||||
color TEXT,
|
||||
active INTEGER DEFAULT 0,
|
||||
updated_at DATETIME
|
||||
);
|
||||
`)
|
||||
@@ -42,4 +43,4 @@ func InitDB() {
|
||||
logger.DBLogger.Fatalf("An error occured while initializing the database: %v", err)
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -71,7 +71,7 @@ func ControllerExists(id int) bool {
|
||||
}
|
||||
|
||||
func GetAllColors() ([]models.LampState, error) {
|
||||
rows, err := DB.Query("SELECT id, color, updated_at FROM controllers WHERE id > 0")
|
||||
rows, err := DB.Query("SELECT id, color, active, updated_at FROM controllers WHERE id > 0")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -81,7 +81,7 @@ func GetAllColors() ([]models.LampState, error) {
|
||||
|
||||
for rows.Next() {
|
||||
var state models.LampState
|
||||
if err := rows.Scan(&state.ID, &state.Color, &state.UpdatedAt); err != nil {
|
||||
if err := rows.Scan(&state.ID, &state.Color, &state.Active, &state.UpdatedAt); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
controllers = append(controllers, state)
|
||||
@@ -90,7 +90,6 @@ func GetAllColors() ([]models.LampState, error) {
|
||||
if err := rows.Err(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return controllers, nil
|
||||
}
|
||||
|
||||
@@ -129,3 +128,27 @@ func SetColor(id int, color string) error {
|
||||
logger.DBLogger.Printf("Lamp %d color updated to %s", id, color)
|
||||
return nil
|
||||
}
|
||||
|
||||
func GetControllerState(id int) (bool, error) {
|
||||
row := DB.QueryRow("SELECT active FROM controllers WHERE id = ?", id)
|
||||
|
||||
var state bool
|
||||
err := row.Scan(&state)
|
||||
if err != nil {
|
||||
logger.DBLogger.Print(err)
|
||||
return false, err
|
||||
}
|
||||
|
||||
return state, nil
|
||||
}
|
||||
|
||||
func SetControllerstate(active bool, id int) error {
|
||||
_, err := DB.Exec("UPDATE controllers SET active = ? WHERE id = ?", active, id)
|
||||
if err != nil {
|
||||
logger.DBLogger.Printf("Failed to update active state for controller %d: %v", id, err)
|
||||
return err
|
||||
}
|
||||
|
||||
logger.DBLogger.Printf("Set active state for %d to %t", id, active)
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user