From 0e25f2b4073131c064305d80c5249bd152c7b1c9 Mon Sep 17 00:00:00 2001 From: alex Date: Mon, 26 Dec 2022 20:50:17 +0100 Subject: [PATCH] integrated rabbitmq --- main.go | 17 +---------------- modules/rabbitmq/rabbitmq.go | 25 ++++++++++++++++++++++++- modules/structs/rabbitmq.go | 7 +++++++ templates/emailVerification.html | 6 +++--- templates/templates.json | 4 ++-- 5 files changed, 37 insertions(+), 22 deletions(-) diff --git a/main.go b/main.go index 7580439..6da6c25 100644 --- a/main.go +++ b/main.go @@ -4,7 +4,6 @@ import ( "clickandjoin.app/emailserver/mailer" "clickandjoin.app/emailserver/modules/config" "clickandjoin.app/emailserver/modules/rabbitmq" - "clickandjoin.app/emailserver/modules/structs" "github.com/sirupsen/logrus" ) @@ -17,23 +16,9 @@ func init() { logrus.Println("Debug:", config.Cfg.Debug) - rabbitmq.Init() - mailer.Init() } func main() { - logrus.Println("test") - - test := struct { - Url string - Username string - ActivationCode string - }{ - Url: "https://test.de", - Username: "Ben", - ActivationCode: "912 211", - } - - mailer.NewMail(structs.Mail{To: []string{"info@clickandjoin.de"}, TemplateId: "emailVerification", LanguageId: "de", BodyData: test}) + rabbitmq.Init() } diff --git a/modules/rabbitmq/rabbitmq.go b/modules/rabbitmq/rabbitmq.go index e60c90e..55b2221 100644 --- a/modules/rabbitmq/rabbitmq.go +++ b/modules/rabbitmq/rabbitmq.go @@ -1,9 +1,12 @@ package rabbitmq import ( + "encoding/json" "fmt" + "clickandjoin.app/emailserver/mailer" "clickandjoin.app/emailserver/modules/config" + "clickandjoin.app/emailserver/modules/structs" amqp "github.com/rabbitmq/amqp091-go" "github.com/sirupsen/logrus" ) @@ -62,7 +65,27 @@ func Init() { go func() { for d := range msgs { - logrus.Printf("Received a message: %s", d.Body) + logrus.Debugln("RECV MAIL") + + mailMessage := structs.RabbitMqMailMessage{} + + if err := json.Unmarshal(d.Body, &mailMessage); err != nil { + logrus.Errorln("Failed to unmarshal json message, err:", err) + continue + } + + err = mailer.NewMail(structs.Mail{ + To: []string{"info@clickandjoin.de"}, + TemplateId: mailMessage.TemplateId, + LanguageId: mailMessage.LanguageId, + BodyData: mailMessage.BodyData}) + + if err != nil { + logrus.Errorln("Failed to send new mail, err:", err) + continue + } + + d.Ack(false) } }() diff --git a/modules/structs/rabbitmq.go b/modules/structs/rabbitmq.go index 59d5c77..3a76df4 100644 --- a/modules/structs/rabbitmq.go +++ b/modules/structs/rabbitmq.go @@ -5,3 +5,10 @@ type RabbitMqMessage struct { Rec string Body any } + +type RabbitMqMailMessage struct { + UserMail string `json:"m"` + TemplateId string `json:"t"` + LanguageId string `json:"l"` + BodyData map[string]interface{} `json:"b"` +} diff --git a/templates/emailVerification.html b/templates/emailVerification.html index c49a37a..fb461ce 100644 --- a/templates/emailVerification.html +++ b/templates/emailVerification.html @@ -3,10 +3,10 @@

%header%

%informationText%

-

{{.ActivationCode}}

+

{{.activation_code}}

{{.Url}}

+

%alternativeUrl% {{.url}}

\ No newline at end of file diff --git a/templates/templates.json b/templates/templates.json index 7772c5b..91973a9 100644 --- a/templates/templates.json +++ b/templates/templates.json @@ -6,8 +6,8 @@ "de": "Ihr E-Mail-Bestätigungscode" }, "header": { - "en": "Hello {{.Username}}", - "de": "Hallo {{.Username}}," + "en": "Good day,", + "de": "Guten Tag," }, "informationText": { "en": "to confirm your identity we need to verify your email.",