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}}