From 627173e64f3dffcefe47f28bc8d5d19504a277fd Mon Sep 17 00:00:00 2001 From: TwinProduction Date: Fri, 16 Jul 2021 19:51:09 -0400 Subject: [PATCH] Refactor duplicate functions --- core/event.go | 11 +++++++++++ storage/store/database/database.go | 4 ++-- storage/store/database/util.go | 16 ---------------- storage/store/memory/util.go | 14 ++------------ 4 files changed, 15 insertions(+), 30 deletions(-) delete mode 100644 storage/store/database/util.go diff --git a/core/event.go b/core/event.go index 2414e958..3b35c96d 100644 --- a/core/event.go +++ b/core/event.go @@ -24,3 +24,14 @@ var ( // EventUnhealthy is a type of event that represents a service failing one or more of its conditions EventUnhealthy EventType = "UNHEALTHY" ) + +// NewEventFromResult creates an Event from a Result +func NewEventFromResult(result *Result) *Event { + event := &Event{Timestamp: result.Timestamp} + if result.Success { + event.Type = EventHealthy + } else { + event.Type = EventUnhealthy + } + return event +} diff --git a/storage/store/database/database.go b/storage/store/database/database.go index b2d89d73..455d641a 100644 --- a/storage/store/database/database.go +++ b/storage/store/database/database.go @@ -233,7 +233,7 @@ func (s *Store) Insert(service *core.Service, result *core.Result) { // Silently fail log.Printf("[database][Insert] Failed to insert event=%s for group=%s; service=%s: %s", core.EventStart, service.Group, service.Name, err.Error()) } - event := generateEventBasedOnResult(result) + event := core.NewEventFromResult(result) if err = s.insertEvent(tx, serviceID, event); err != nil { // Silently fail log.Printf("[database][Insert] Failed to insert event=%s for group=%s; service=%s: %s", event.Type, service.Group, service.Name, err.Error()) @@ -249,7 +249,7 @@ func (s *Store) Insert(service *core.Service, result *core.Result) { // that the service either went from Healthy to Unhealthy or Unhealthy -> Healthy, therefore, we'll add // an event to mark the change in state if lastResultSuccess != result.Success { - event := generateEventBasedOnResult(result) + event := core.NewEventFromResult(result) if err = s.insertEvent(tx, serviceID, event); err != nil { // Silently fail log.Printf("[database][Insert] Failed to insert event=%s for group=%s; service=%s: %s", event.Type, service.Group, service.Name, err.Error()) diff --git a/storage/store/database/util.go b/storage/store/database/util.go deleted file mode 100644 index f555d4cc..00000000 --- a/storage/store/database/util.go +++ /dev/null @@ -1,16 +0,0 @@ -package database - -import "github.com/TwinProduction/gatus/core" - -func generateEventBasedOnResult(result *core.Result) *core.Event { - var eventType core.EventType - if result.Success { - eventType = core.EventHealthy - } else { - eventType = core.EventUnhealthy - } - return &core.Event{ - Type: eventType, - Timestamp: result.Timestamp, - } -} diff --git a/storage/store/memory/util.go b/storage/store/memory/util.go index e1ac9667..0f707789 100644 --- a/storage/store/memory/util.go +++ b/storage/store/memory/util.go @@ -62,7 +62,7 @@ func AddResult(ss *core.ServiceStatus, result *core.Result) { if len(ss.Results) > 0 { // Check if there's any change since the last result if ss.Results[len(ss.Results)-1].Success != result.Success { - ss.Events = append(ss.Events, generateEventBasedOnResultSuccess(result)) + ss.Events = append(ss.Events, core.NewEventFromResult(result)) if len(ss.Events) > core.MaximumNumberOfEvents { // Doing ss.Events[1:] would usually be sufficient, but in the case where for some reason, the slice has // more than one extra element, we can get rid of all of them at once and thus returning the slice to a @@ -72,7 +72,7 @@ func AddResult(ss *core.ServiceStatus, result *core.Result) { } } else { // This is the first result, so we need to add the first healthy/unhealthy event - ss.Events = append(ss.Events, generateEventBasedOnResultSuccess(result)) + ss.Events = append(ss.Events, core.NewEventFromResult(result)) } ss.Results = append(ss.Results, result) if len(ss.Results) > core.MaximumNumberOfResults { @@ -83,13 +83,3 @@ func AddResult(ss *core.ServiceStatus, result *core.Result) { } processUptimeAfterResult(ss.Uptime, result) } - -func generateEventBasedOnResultSuccess(result *core.Result) *core.Event { - event := &core.Event{Timestamp: result.Timestamp} - if result.Success { - event.Type = core.EventHealthy - } else { - event.Type = core.EventUnhealthy - } - return event -}