From e4475e2400e4e2597f3979b98446a0b2ba3f1340 Mon Sep 17 00:00:00 2001 From: "$(pass /github/name)" <$(pass /github/email)> Date: Thu, 11 Jul 2024 12:48:26 +0200 Subject: [PATCH] added html admin notification mail --- internal/models/user.go | 2 ++ internal/services/email_service.go | 41 ++++++++++++++++++++++++-- templates/email/mail_registration.html | 7 +++-- 3 files changed, 44 insertions(+), 6 deletions(-) diff --git a/internal/models/user.go b/internal/models/user.go index 4c6e0e2..385a1ab 100644 --- a/internal/models/user.go +++ b/internal/models/user.go @@ -19,6 +19,8 @@ type User struct { LastName string `gorm:"not null" json:"last_name"` ProfilePicture string `json:"profile_picture"` Address string `gorm:"not null" json:"address"` + ZipCode string `gorm:"not null" json:"zip_code"` + City string `form:"not null" json:"city"` Consents []Consent `gorm:"constraint:OnUpdate:CASCADE"` BankAccount BankAccount `gorm:"constraint:OnUpdate:CASCADE,OnDelete:CASCADE;"` Verification Verification `gorm:"constraint:OnUpdate:CASCADE,OnDelete:CASCADE;"` diff --git a/internal/services/email_service.go b/internal/services/email_service.go index 9b47d55..749615f 100644 --- a/internal/services/email_service.go +++ b/internal/services/email_service.go @@ -102,7 +102,42 @@ func (s *EmailService) SendWelcomeEmail(user *models.User, membership *models.Me } func (s *EmailService) NotifyAdminOfNewUser(user *models.User) error { - subject := "New User Registration" - body := "

A new user has registered with the email: " + user.Email + "

" - return s.SendEmail(s.adminEmail, subject, body) + // Prepare data to be injected into the template + data := struct { + FirstName string + LastName string + MembershipModel string + MembershipID int64 + MembershipFee float32 + RentalFee float32 + Address string + ZipCode string + City string + DateOfBirth string + Email string + Phone string + IBAN string + }{ + FirstName: user.FirstName, + LastName: user.LastName, + MembershipModel: user.Membership.SubscriptionModel.Name, + MembershipID: user.Membership.ID, + MembershipFee: float32(user.Membership.SubscriptionModel.MonthlyFee), + RentalFee: float32(user.Membership.SubscriptionModel.HourlyRate), + Address: user.Address, + ZipCode: user.ZipCode, + City: user.City, + DateOfBirth: user.DateOfBirth.Format("20060102"), + Email: user.Email, + Phone: *user.Phone, + IBAN: user.BankAccount.IBAN, + } + + subject := "Neues Mitglied hat sich registriert" + body, err := ParseTemplate("mail_registration.html", data) + if err != nil { + logger.Error.Print("Couldn't send admin notification mail") + return err + } + return s.SendEmail(user.Email, subject, body) } diff --git a/templates/email/mail_registration.html b/templates/email/mail_registration.html index b3cd7e2..4df371c 100644 --- a/templates/email/mail_registration.html +++ b/templates/email/mail_registration.html @@ -71,12 +71,13 @@
  • Das gebuchtes Modell:
  • Name: {{.FirstName}} {{.LastName}}
  • +
  • Mitgliedsname: {{.MembershipID}}
  • Adresse: {{.Address}},{{.ZipCode}} {{.City}}