From c0977a6b7a7b0e5e06443e2ba2c2ebaa1978b9a6 Mon Sep 17 00:00:00 2001 From: Bel LaPointe <153096461+breel-render@users.noreply.github.com> Date: Fri, 12 Apr 2024 13:32:53 -0600 Subject: [PATCH] return ErrIrrelevantMessage and log http server ignored messages --- main.go | 7 ++++++- message.go | 8 ++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/main.go b/main.go index acbc279..e475b36 100644 --- a/main.go +++ b/main.go @@ -4,6 +4,7 @@ import ( "bytes" "context" "encoding/json" + "errors" "fmt" "io" "log" @@ -130,14 +131,18 @@ func _newHandlerPostAPIV1EventsSlack(cfg Config) http.HandlerFunc { } m, err := ParseSlack(b) - if err != nil { + if errors.Is(err, ErrIrrelevantMessage) { + return + } else if err != nil { http.Error(w, err.Error(), http.StatusBadRequest) return } if err := cfg.storage.Upsert(r.Context(), m); err != nil { + log.Printf("failed to ingest %+v: %v", m, err) http.Error(w, err.Error(), http.StatusInternalServerError) return } + log.Printf("ingested %+v", m) } } diff --git a/message.go b/message.go index 55a5823..57520f5 100644 --- a/message.go +++ b/message.go @@ -8,6 +8,10 @@ import ( "time" ) +var ( + ErrIrrelevantMessage = errors.New("message isnt relevant to spoc bot vr") +) + type Message struct { ID string TS uint64 @@ -109,9 +113,9 @@ func ParseSlack(b []byte) (Message, error) { if s.Event.Bot.Name != "" { if len(s.Event.Attachments) == 0 { - return Message{}, errors.New("bot message has no attachments") + return Message{}, ErrIrrelevantMessage } else if !strings.Contains(s.Event.Attachments[0].Title, ": Firing: ") { - return Message{}, errors.New("bot message attachment is not Firing") + return Message{}, ErrIrrelevantMessage } return Message{ ID: fmt.Sprintf("%s/%v", s.Event.ID, s.TS),