From dd6979c38db628aa4392aaa89620c948994da8c7 Mon Sep 17 00:00:00 2001 From: Ash Keel Date: Thu, 9 Dec 2021 10:46:14 +0100 Subject: [PATCH] Add Status() to modules --- modules/database/db.go | 16 ++++++++++++++++ modules/http/server.go | 13 +++++++++++++ modules/loyalty/manager.go | 9 +++++++++ modules/manager.go | 12 ++++++++++++ modules/stulbe/client.go | 8 ++++++++ modules/twitch/client.go | 9 +++++++++ 6 files changed, 67 insertions(+) diff --git a/modules/database/db.go b/modules/database/db.go index e7e62de..b6dab36 100644 --- a/modules/database/db.go +++ b/modules/database/db.go @@ -56,6 +56,22 @@ func (db *DB) Client() *badger.DB { return db.client } +func (db *DB) Status() modules.ModuleStatus { + lsm, vlog := db.client.Size() + return modules.ModuleStatus{ + Enabled: true, + Working: !db.client.IsClosed(), + Data: struct { + LSMSize int64 + VlogSize int64 + }{ + lsm, + vlog, + }, + StatusString: db.client.LevelsToString(), + } +} + func (db *DB) Close() error { return db.client.Close() } diff --git a/modules/http/server.go b/modules/http/server.go index dee7f2a..05f54b5 100644 --- a/modules/http/server.go +++ b/modules/http/server.go @@ -56,6 +56,19 @@ func NewServer(manager *modules.Manager) (*Server, error) { return server, nil } +func (s *Server) Status() modules.ModuleStatus { + return modules.ModuleStatus{ + Enabled: true, + Working: s.server != nil, + Data: struct { + Bind string + }{ + s.server.Addr, + }, + StatusString: s.server.Addr, + } +} + func (s *Server) Close() error { return s.server.Close() } diff --git a/modules/loyalty/manager.go b/modules/loyalty/manager.go index 229a49f..2cd299a 100644 --- a/modules/loyalty/manager.go +++ b/modules/loyalty/manager.go @@ -124,6 +124,15 @@ func NewManager(manager *modules.Manager) (*Manager, error) { return loyalty, nil } +func (m *Manager) Status() modules.ModuleStatus { + return modules.ModuleStatus{ + Enabled: true, + Working: true, + Data: struct{}{}, + StatusString: "", + } +} + func (m *Manager) Close() error { //TODO Stop subscriptions? return nil diff --git a/modules/manager.go b/modules/manager.go index 94d4eb6..0f94511 100644 --- a/modules/manager.go +++ b/modules/manager.go @@ -2,7 +2,19 @@ package modules import "github.com/sirupsen/logrus" +type ModuleStatus struct { + Enabled bool + Working bool + Data interface{} + StatusString string +} + +func (m ModuleStatus) String() string { + return m.StatusString +} + type Module interface { + Status() ModuleStatus Close() error } diff --git a/modules/stulbe/client.go b/modules/stulbe/client.go index 33e0679..9489d7b 100644 --- a/modules/stulbe/client.go +++ b/modules/stulbe/client.go @@ -115,7 +115,15 @@ func (m *Manager) ReceiveEvents() error { case <-m.restart: return nil } + } +} +func (m *Manager) Status() modules.ModuleStatus { + return modules.ModuleStatus{ + Enabled: true, + Working: m.Client != nil, + Data: struct{}{}, + StatusString: "", } } diff --git a/modules/twitch/client.go b/modules/twitch/client.go index ac30443..fe2190e 100644 --- a/modules/twitch/client.go +++ b/modules/twitch/client.go @@ -151,6 +151,15 @@ func (c *Client) RunBot() error { } } +func (c *Client) Status() modules.ModuleStatus { + return modules.ModuleStatus{ + Enabled: true, + Working: c.Bot != nil && c.Bot.Client != nil, + Data: struct{}{}, + StatusString: "", + } +} + func (c *Client) Close() error { return c.Bot.Client.Disconnect() }