From 1462dec151ca885fa68d86869d42ab2f6adb43be Mon Sep 17 00:00:00 2001 From: mflilian Date: Thu, 6 Oct 2022 18:52:06 -0300 Subject: [PATCH] removes message struct used by cassandra --- app/histories.go | 2 +- app/histories_test.go | 12 ++++++------ app/history_test.go | 16 ++++++++-------- app/history_v2_player_support_test.go | 2 +- app/history_v2_test.go | 2 +- models/message.go | 9 --------- mongoclient/get_messages.go | 20 ++++---------------- 7 files changed, 21 insertions(+), 42 deletions(-) diff --git a/app/histories.go b/app/histories.go index 86e0f13..296a070 100644 --- a/app/histories.go +++ b/app/histories.go @@ -31,7 +31,7 @@ func HistoriesHandler(app *App) func(c echo.Context) error { } // retrieve messages - messages := make([]*models.Message, 0) + messages := make([]*models.MessageV2, 0) collection := app.Defaults.MongoMessagesCollection for _, topic := range authorizedTopics { diff --git a/app/histories_test.go b/app/histories_test.go index 816ae27..6997295 100644 --- a/app/histories_test.go +++ b/app/histories_test.go @@ -64,12 +64,12 @@ func TestHistoriesHandler(t *testing.T) { // then the messages should be returned when requested via /histories g.Assert(status).Equal(http.StatusOK) - var messages []models.Message + var messages []models.MessageV2 err = json.Unmarshal([]byte(body), &messages) Expect(err).To(BeNil()) g.Assert(len(messages)).Equal(2) - g.Assert(messages[0].Payload).Equal("{\"test 0\":\"test 1\"}") - g.Assert(messages[1].Payload).Equal("{\"test 1\":\"test 2\"}") + g.Assert(messages[0].Payload["test 0"]).Equal("test 1") + g.Assert(messages[1].Payload["test 1"]).Equal("test 2") }) g.It("It should return 200 if the user is authorized into at least one topic", func() { @@ -89,11 +89,11 @@ func TestHistoriesHandler(t *testing.T) { status, body := Get(a, path, t) g.Assert(status).Equal(http.StatusOK) - var messages []models.Message + var messages []models.MessageV2 err = json.Unmarshal([]byte(body), &messages) Expect(err).To(BeNil()) g.Assert(len(messages)).Equal(1) - g.Assert(messages[0].Payload).Equal("{\"test 0\":\"test 1\"}") + g.Assert(messages[0].Payload["test 0"]).Equal("test 1") }) g.It("It should return 401 if the user is not authorized in any topic", func() { @@ -140,7 +140,7 @@ func TestHistoriesHandler(t *testing.T) { status, body := Get(a, path, t) g.Assert(status).Equal(http.StatusOK) - var messages []models.Message + var messages []models.MessageV2 err = json.Unmarshal([]byte(body), &messages) Expect(err).To(BeNil()) g.Assert(len(messages)).Equal(2) diff --git a/app/history_test.go b/app/history_test.go index 4d0a9bf..07534e9 100644 --- a/app/history_test.go +++ b/app/history_test.go @@ -64,7 +64,7 @@ func TestHistoryHandler(t *testing.T) { status, body := Get(a, path, t) g.Assert(status).Equal(http.StatusOK) - var messages []models.Message + var messages []models.MessageV2 err = json.Unmarshal([]byte(body), &messages) Expect(err).To(BeNil()) @@ -84,12 +84,12 @@ func TestHistoryHandler(t *testing.T) { status, body := Get(a, path, t) g.Assert(status).Equal(http.StatusOK) - var messages []models.Message + var messages []models.MessageV2 err = json.Unmarshal([]byte(body), &messages) Expect(err).To(BeNil()) g.Assert(len(messages)).Equal(1) - g.Assert(messages[0].Payload).Equal("{\"test 0\":\"test 1\"}") + g.Assert(messages[0].Payload["test 0"]).Equal("test 1") }) g.It("It should return 200 and [] if the user is authorized into the topic and there are no messages", func() { @@ -103,7 +103,7 @@ func TestHistoryHandler(t *testing.T) { status, body := Get(a, path, t) g.Assert(status).Equal(http.StatusOK) - var messages []models.Message + var messages []models.MessageV2 err = json.Unmarshal([]byte(body), &messages) Expect(err).To(BeNil()) }) @@ -123,7 +123,7 @@ func TestHistoryHandler(t *testing.T) { status, body := Get(a, path, t) g.Assert(status).Equal(http.StatusOK) - var messages []models.Message + var messages []models.MessageV2 err = json.Unmarshal([]byte(body), &messages) Expect(err).To(BeNil()) }) @@ -147,7 +147,7 @@ func TestHistoryHandler(t *testing.T) { status, body := Get(a, path, t) g.Assert(status).Equal(http.StatusOK) - var messages []models.Message + var messages []models.MessageV2 err = json.Unmarshal([]byte(body), &messages) Expect(err).To(BeNil()) @@ -174,7 +174,7 @@ func TestHistoryHandler(t *testing.T) { status, body := Get(a, path, t) g.Assert(status).Equal(http.StatusOK) - var messages []models.Message + var messages []models.MessageV2 err = json.Unmarshal([]byte(body), &messages) Expect(err).To(BeNil()) @@ -201,7 +201,7 @@ func TestHistoryHandler(t *testing.T) { status, body := Get(a, path, t) g.Assert(status).Equal(http.StatusOK) - var messages []models.Message + var messages []models.MessageV2 err = json.Unmarshal([]byte(body), &messages) Expect(err).To(BeNil()) diff --git a/app/history_v2_player_support_test.go b/app/history_v2_player_support_test.go index 2fc7bd7..8af8699 100644 --- a/app/history_v2_player_support_test.go +++ b/app/history_v2_player_support_test.go @@ -43,7 +43,7 @@ func TestHistoryV2PSHandler(t *testing.T) { status, body := Get(a, path, t) g.Assert(status).Equal(http.StatusOK) - var messages []models.Message + var messages []models.MessageV2 err := json.Unmarshal([]byte(body), &messages) g.Assert(len(messages)).Equal(0) Expect(err).To(BeNil()) diff --git a/app/history_v2_test.go b/app/history_v2_test.go index 69447cd..0134875 100644 --- a/app/history_v2_test.go +++ b/app/history_v2_test.go @@ -73,7 +73,7 @@ func TestHistoryV2Handler(t *testing.T) { status, body := Get(a, path, t) g.Assert(status).Equal(http.StatusOK) - var messages []models.Message + var messages []models.MessageV2 err = json.Unmarshal([]byte(body), &messages) g.Assert(len(messages)).Equal(0) Expect(err).To(BeNil()) diff --git a/models/message.go b/models/message.go index f425050..4c5f654 100644 --- a/models/message.go +++ b/models/message.go @@ -1,18 +1,9 @@ package models import ( - "time" - "go.mongodb.org/mongo-driver/bson" ) -// Message represents a chat message stored in Cassandra -type Message struct { - Timestamp time.Time `json:"timestamp" bson:"timestamp"` - Payload string `json:"payload" bson:"payload"` - Topic string `json:"topic" bson:"topic"` -} - // MessageV2 represents new payload for the chat message // This payload is stored in MongoDB // v2 endpoints return this format, diff --git a/mongoclient/get_messages.go b/mongoclient/get_messages.go index ec731f3..0b5b438 100644 --- a/mongoclient/get_messages.go +++ b/mongoclient/get_messages.go @@ -9,9 +9,7 @@ package mongoclient import ( "context" - "encoding/json" "fmt" - "time" "github.com/topfreegames/mqtt-history/logger" "github.com/topfreegames/mqtt-history/models" @@ -53,23 +51,13 @@ type QueryParameters struct { // the MessageV2 model into the Message one for retrocompatibility // Rhe main difference being that the payload field is now referred to as "original_payload" and // is a JSON object, not a string, and also the timestamp is int64 seconds since Unix epoch, not an ISODate -func GetMessages(ctx context.Context, queryParameters QueryParameters) []*models.Message { + +func GetMessages(ctx context.Context, queryParameters QueryParameters) []*models.MessageV2 { span, ctx := opentracing.StartSpanFromContext(ctx, "get_messages") defer span.Finish() searchResults := GetMessagesV2(ctx, queryParameters) - messages := make([]*models.Message, 0) - for _, result := range searchResults { - payload := result.Payload - bytes, _ := json.Marshal(payload) - - finalStr := string(bytes) - message := &models.Message{ - Timestamp: time.Unix(result.Timestamp, 0), - Payload: finalStr, - Topic: queryParameters.Topic, - } - messages = append(messages, message) - } + messages := make([]*models.MessageV2, 0) + messages = append(messages, searchResults...) return messages }