From 8d034c4ad93881ef95aae9760baf6415c28de839 Mon Sep 17 00:00:00 2001 From: Bobby Date: Sun, 6 Apr 2025 12:03:07 +0530 Subject: added health route for server stats --- database/status.go | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 database/status.go (limited to 'database') diff --git a/database/status.go b/database/status.go new file mode 100644 index 0000000..14f24ed --- /dev/null +++ b/database/status.go @@ -0,0 +1,37 @@ +package database + +import ( + "context" + "fmt" + "metachan/types" + "metachan/utils/logger" + "time" +) + +func DatabaseConnectionStatus() bool { + if DB == nil { + return false + } + + sqlDB, err := DB.DB() + if err != nil { + logger.Log(fmt.Sprintf("Unable to get SQL DB: %v", err), types.LogOptions{ + Prefix: "Database", + Level: types.Error, + }) + return false + } + + ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) + defer cancel() + + err = sqlDB.PingContext(ctx) + if err != nil { + logger.Log(fmt.Sprintf("Database connection error: %v", err), types.LogOptions{ + Prefix: "Database", + Level: types.Error, + }) + return false + } + return true +} -- cgit v1.2.3