error check all database writes (debug for #135)

This commit is contained in:
seriousm4x
2023-07-21 20:02:11 +02:00
parent 04a4299930
commit 9fdfc8ad0b
2 changed files with 42 additions and 14 deletions

View File

@@ -43,12 +43,16 @@ func RunPing(app *pocketbase.PocketBase) {
if newStatus {
if oldStatus == "offline" || oldStatus == "" {
device.Set("status", "online")
app.Dao().SaveRecord(device)
if err := app.Dao().SaveRecord(device); err != nil {
logger.Error.Println("Failed to save record:", err)
}
}
} else {
if oldStatus == "online" || oldStatus == "" {
device.Set("status", "offline")
app.Dao().SaveRecord(device)
if err := app.Dao().SaveRecord(device); err != nil {
logger.Error.Println("Failed to save record:", err)
}
}
}
}(device)
@@ -63,9 +67,13 @@ func RunPing(app *pocketbase.PocketBase) {
isUp := networking.CheckPort(device.GetString("ip"), port.GetString("number"))
if isUp != port.GetBool("status") {
port.Set("status", isUp)
app.Dao().SaveRecord(port)
if err := app.Dao().SaveRecord(port); err != nil {
logger.Error.Println("Failed to save record:", err)
}
device.RefreshUpdated()
app.Dao().SaveRecord(device)
if err := app.Dao().SaveRecord(device); err != nil {
logger.Error.Println("Failed to save record:", err)
}
}
}
}(device)
@@ -88,14 +96,20 @@ func RunWakeShutdown(app *pocketbase.PocketBase) {
go func(d *models.Record) {
_, err := CronWakeShutdown.AddFunc(wake_cron, func() {
d.Set("status", "pending")
app.Dao().SaveRecord(d)
if err := app.Dao().SaveRecord(d); err != nil {
logger.Error.Println("Failed to save record:", err)
}
if err := networking.WakeDevice(d); err != nil {
logger.Error.Println(err)
d.Set("status", "offline")
app.Dao().SaveRecord(d)
if err := app.Dao().SaveRecord(d); err != nil {
logger.Error.Println("Failed to save record:", err)
}
} else {
d.Set("status", "online")
app.Dao().SaveRecord(d)
if err := app.Dao().SaveRecord(d); err != nil {
logger.Error.Println("Failed to save record:", err)
}
}
})
if err != nil {
@@ -110,14 +124,20 @@ func RunWakeShutdown(app *pocketbase.PocketBase) {
go func(d *models.Record) {
_, err := CronWakeShutdown.AddFunc(shutdown_cron, func() {
d.Set("status", "pending")
app.Dao().SaveRecord(d)
if err := app.Dao().SaveRecord(d); err != nil {
logger.Error.Println("Failed to save record:", err)
}
if err := networking.ShutdownDevice(d); err != nil {
logger.Error.Println(err)
d.Set("status", "online")
app.Dao().SaveRecord(d)
if err := app.Dao().SaveRecord(d); err != nil {
logger.Error.Println("Failed to save record:", err)
}
} else {
d.Set("status", "offline")
app.Dao().SaveRecord(d)
if err := app.Dao().SaveRecord(d); err != nil {
logger.Error.Println("Failed to save record:", err)
}
}
})
if err != nil {

View File

@@ -22,14 +22,18 @@ func HandlerWake(c echo.Context) error {
}
go func(*models.Record) {
record.Set("status", "pending")
App.Dao().SaveRecord(record)
if err := App.Dao().SaveRecord(record); err != nil {
logger.Error.Println("Failed to save record:", err)
}
if err := networking.WakeDevice(record); err != nil {
logger.Error.Println(err)
record.Set("status", "offline")
} else {
record.Set("status", "online")
}
App.Dao().SaveRecord(record)
if err := App.Dao().SaveRecord(record); err != nil {
logger.Error.Println("Failed to save record:", err)
}
}(record)
return c.JSON(http.StatusOK, record)
}
@@ -41,14 +45,18 @@ func HandlerShutdown(c echo.Context) error {
}
go func(*models.Record) {
record.Set("status", "pending")
App.Dao().SaveRecord(record)
if err := App.Dao().SaveRecord(record); err != nil {
logger.Error.Println("Failed to save record:", err)
}
if err := networking.ShutdownDevice(record); err != nil {
logger.Error.Println(err)
record.Set("status", "online")
} else {
record.Set("status", "offline")
}
App.Dao().SaveRecord(record)
if err := App.Dao().SaveRecord(record); err != nil {
logger.Error.Println("Failed to save record:", err)
}
}(record)
return c.JSON(http.StatusOK, record)
}