From d0037a41fb51ea976650069f2d998d6ad8c72788 Mon Sep 17 00:00:00 2001 From: alex Date: Tue, 27 Dec 2022 00:55:03 +0100 Subject: [PATCH] added new user sign in --- modules/rabbitmq/rabbitmq.go | 10 ++++++- modules/structs/mail.go | 51 ++++++++++++++---------------------- templates/newUserSignIn.html | 7 +++++ templates/templates.json | 14 ++++++++++ 4 files changed, 49 insertions(+), 33 deletions(-) create mode 100644 templates/newUserSignIn.html diff --git a/modules/rabbitmq/rabbitmq.go b/modules/rabbitmq/rabbitmq.go index 55b2221..65dd73b 100644 --- a/modules/rabbitmq/rabbitmq.go +++ b/modules/rabbitmq/rabbitmq.go @@ -3,6 +3,7 @@ package rabbitmq import ( "encoding/json" "fmt" + "strings" "clickandjoin.app/emailserver/mailer" "clickandjoin.app/emailserver/modules/config" @@ -74,8 +75,15 @@ func Init() { continue } + logrus.Println(mailMessage.UserMail, strings.HasSuffix(mailMessage.UserMail, "@roese.dev"), strings.HasSuffix(mailMessage.UserMail, "@umbach.dev")) + + // only for testing + if !strings.HasSuffix(mailMessage.UserMail, "@roese.dev") && !strings.HasSuffix(mailMessage.UserMail, "@umbach.dev") { + mailMessage.UserMail = "info@clickandjoin.de" + } + err = mailer.NewMail(structs.Mail{ - To: []string{"info@clickandjoin.de"}, + To: []string{mailMessage.UserMail}, TemplateId: mailMessage.TemplateId, LanguageId: mailMessage.LanguageId, BodyData: mailMessage.BodyData}) diff --git a/modules/structs/mail.go b/modules/structs/mail.go index 3351364..d933dab 100644 --- a/modules/structs/mail.go +++ b/modules/structs/mail.go @@ -35,7 +35,7 @@ func (m *Mail) Send(body string) error { return err } - logrus.Debugln("send mail", msg) + logrus.Debugln("SEND MAIL", msg) return nil } @@ -43,57 +43,44 @@ func (m *Mail) RenderTemplate() (string, error) { body := cache.BodyTemplates[m.TemplateId] for templateName, templateData := range cache.Templates.Templates { + // Skipping templates if the template ID is not the expected one + if templateName != m.TemplateId { + continue + } + logrus.Debugln("RENDER TEMPLATE", templateName, templateData) m.Subject = templateData["mailSubject"][m.LanguageId] + // occurs if the requested language code does not exist + if m.Subject == "" { + m.Subject = templateData["mailSubject"][config.Cfg.DefaultLanguageCode] + } + // replace body %values% with values in templates config for key, value := range templateData { - logrus.Debugln("key", key, "value", value) - if key == "mailSubject" { continue } - body = []byte(strings.Replace(string(body), "%"+key+"%", value[m.LanguageId], -1)) + v := value[m.LanguageId] + + // occurs if the requested language code does not exist + if v == "" { + v = value[config.Cfg.DefaultLanguageCode] + } + + body = []byte(strings.Replace(string(body), "%"+key+"%", v, -1)) } } - logrus.Println("body", string(body)) - t := template.Must(template.New("").Parse(string(body))) buf := new(bytes.Buffer) - logrus.Println("bodyData", m.BodyData) - if err := t.Execute(buf, m.BodyData); err != nil { return "", err } - // define subject from config - /* - m.Subject = templates.Templates[m.TemplateId].Languages[m.LanguageId].Subject - - body := templates.Templates[m.TemplateId].Body - - // replace body %values% with values in templates config - for key, value := range templates.Templates[m.TemplateId].Languages[m.LanguageId].Texts { - strKey := fmt.Sprintf("%v", key) - strValue := fmt.Sprintf("%v", value) - - logrus.Infoln("a", strKey, strValue) - - body = strings.Replace(body, "%"+strKey+"%", strValue, -1) - } - - t := template.Must(template.New("").Parse(body)) - - buf := new(bytes.Buffer) - - if err := t.Execute(buf, m.BodyData); err != nil { - logrus.Fatalln("Error executing body data", err) - } */ - return buf.String(), nil } diff --git a/templates/newUserSignIn.html b/templates/newUserSignIn.html new file mode 100644 index 0000000..b36dec4 --- /dev/null +++ b/templates/newUserSignIn.html @@ -0,0 +1,7 @@ + + + +

%header%

+

%informationText%

+ + \ No newline at end of file diff --git a/templates/templates.json b/templates/templates.json index 91973a9..0dccf84 100644 --- a/templates/templates.json +++ b/templates/templates.json @@ -21,6 +21,20 @@ "en": "Alternatively you can click on the link here", "de": "Alternativ kannst du auch hier auf den Link klicken" } + }, + "newUserSignIn": { + "mailSubject": { + "en": "A new sign-in was detected", + "de": "Neue Anmeldung wurde festgestellt" + }, + "header": { + "en": "Good day,", + "de": "Guten Tag," + }, + "informationText": { + "en": "a new sign-in on {{.device}} was detected", + "de": "eine neue Anmeldung auf {{.device}} wurde festgestellt" + } } } } \ No newline at end of file