database setup and getcurrent

This commit is contained in:
Mitsu
2025-07-08 22:03:03 +02:00
parent 96eed5121f
commit 5281f73148
7 changed files with 119 additions and 30 deletions
+21 -3
View File
@@ -7,11 +7,29 @@ import (
"github.com/siestaw/laterna/server/cmd/internal/logger"
)
var DB *sql.DB
func ConnectDB() {
db, err := sql.Open("sqlite3", "./db.sql")
var err error
DB, err = sql.Open("sqlite3", "./db.sql")
if err != nil {
logger.DBLogger.Printf("An Error occured while connecting to the database: %v", err)
return
}
logger.DBLogger.Printf("Successfully connected to the database!")
InitDB()
}
func InitDB() {
_, err := DB.Exec(`
CREATE TABLE IF NOT EXISTS lamp_state (
id TEXT PRIMARY KEY,
color TEXT NOT NULL,
updated_at DATETIME NOT NULL
);
`)
if err != nil {
logger.DBLogger.Fatalf("An error occured while initializing the database: %v", err)
}
logger.DBLogger.Printf("Connected")
defer db.Close()
}
+19
View File
@@ -0,0 +1,19 @@
package db
import (
"github.com/siestaw/laterna/server/cmd/internal/logger"
"github.com/siestaw/laterna/server/cmd/internal/models"
)
func ViewColor(id int) (*models.LampState, error) {
row := DB.QueryRow("SELECT * FROM lamp_state WHERE id = ?", id)
var state models.LampState
err := row.Scan(&state.ID, &state.Color, &state.UpdatedAt)
if err != nil {
logger.DBLogger.Print(err)
return nil, err
}
return &state, nil
}
-1
View File
@@ -1 +0,0 @@
package db