From b6d1ed89096e2b5559dafa1ebf9c677ff8cab6c2 Mon Sep 17 00:00:00 2001
From: thijsheijden <hi@thijsheijden.nl>
Date: Mon, 13 Dec 2021 14:08:09 +0100
Subject: [PATCH] Updated panic defer function to send message to frontend

---
 internal/usecases/consume/handlemessage.go | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/internal/usecases/consume/handlemessage.go b/internal/usecases/consume/handlemessage.go
index f751492..fd6977c 100644
--- a/internal/usecases/consume/handlemessage.go
+++ b/internal/usecases/consume/handlemessage.go
@@ -25,13 +25,6 @@ HandleMessage gets called when a message is received
 */
 func (s *Service) HandleMessage(msg *broker.Message) {
 
-	// Defer a panic intercepting function
-	defer func() {
-		if err := recover(); err != nil {
-			log.Printf("PANIC: %e", err.(error))
-		}
-	}()
-
 	// Grab the headers from the message
 	sessionID, clientID, queryID, err := getHeaders(&msg.Headers)
 	if err != nil {
@@ -40,6 +33,15 @@ func (s *Service) HandleMessage(msg *broker.Message) {
 	}
 	s.publishStatus("Received", sessionID, queryID)
 
+	// Defer a panic intercepting function
+	defer func(sessionID, queryID *string) {
+		if err := recover(); err != nil {
+			log.Printf("PANIC: %e", err.(error))
+
+			s.publishStatus("Critical Error", sessionID, queryID)
+		}
+	}(sessionID, queryID)
+
 	// Unmarshall the incoming message into an IncomingJSONQuery object
 	JSONQuery, err := query.UnmarshalJSON(&msg.Body)
 	if err != nil {
-- 
GitLab