From 9fdfc8ad0bac204c49e58d5ef6d35cc274a88e11 Mon Sep 17 00:00:00 2001 From: seriousm4x Date: Fri, 21 Jul 2023 20:02:11 +0200 Subject: [PATCH] error check all database writes (debug for #135) --- backend/cronjobs/cronjobs.go | 40 +++++++++++++++++++++++++++--------- backend/pb/handlers.go | 16 +++++++++++---- 2 files changed, 42 insertions(+), 14 deletions(-) diff --git a/backend/cronjobs/cronjobs.go b/backend/cronjobs/cronjobs.go index 4b8d51f3..e59deea3 100644 --- a/backend/cronjobs/cronjobs.go +++ b/backend/cronjobs/cronjobs.go @@ -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 { diff --git a/backend/pb/handlers.go b/backend/pb/handlers.go index aa36acd1..26ede09a 100644 --- a/backend/pb/handlers.go +++ b/backend/pb/handlers.go @@ -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) }