first handler writing to database

This commit is contained in:
2023-12-01 18:57:56 +01:00
parent aa062a79ab
commit ca004dce51
8 changed files with 219 additions and 39 deletions

View File

@ -1,28 +1,45 @@
package database
import (
"log"
"time"
//"time"
"gorm.io/driver/postgres"
"gorm.io/gorm"
)
func Test() {
dsn := ""
db, err := gorm.Open(postgres.Open(dsn))
log.Printf("Database: %s, %s", db, err)
db.AutoMigrate(&Application{})
db.AutoMigrate(&SensorType{})
db.AutoMigrate(&Sensor{})
db.AutoMigrate(&Measurement{})
n := time.Now()
m := Measurement { Time: n, Application: "bla", SensorType: "bla", Sensor: "bla", Variable: "bla", Unit: "bla", Value: 1.0 }
db.Create(&m)
m = Measurement { Time: n, Application: "bla", SensorType: "bla", Sensor: "bla", Variable: "bla", Unit: "bla", Value: 1.0 }
db.Create(&m)
type DatabaseHandle struct {
initialized bool
dbh *gorm.DB
}
func NewDatabaseHandle(dsn string) *DatabaseHandle {
var db DatabaseHandle
conn, err := gorm.Open(postgres.Open(dsn))
if err != nil {
log.Printf("Unable to open database connection: %s", err)
db.initialized = false
} else {
db.dbh = conn
db.initialized = true
log.Println("Database connection opened")
}
return &db
}
func (dbh *DatabaseHandle) StoreMeasurement(measurement *Measurement) {
if ! dbh.initialized {
log.Println("Database connection not initialized, can not store, measurement lost")
return
}
result := dbh.dbh.Create(measurement)
if result.Error != nil {
log.Printf("Unable to insert measurement: %s", result.Error)
return
}
log.Println("Successfully stored measurement")
}