Skip to content

Commit eaa3672

Browse files
author
linkinstar
committed
Merge branch 'ai_fix_something' into 'main'
fix send email use web site name See merge request opensource/answer!102
2 parents 5519ed8 + 67223dd commit eaa3672

File tree

4 files changed

+60
-20
lines changed

4 files changed

+60
-20
lines changed

cmd/answer/wire_gen.go

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/service/export/email_service.go

Lines changed: 53 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,10 @@ import (
77
"html/template"
88

99
"github.com/answerdev/answer/internal/base/reason"
10+
"github.com/answerdev/answer/internal/entity"
11+
"github.com/answerdev/answer/internal/schema"
1012
"github.com/answerdev/answer/internal/service/config"
13+
"github.com/answerdev/answer/internal/service/siteinfo_common"
1114
"github.com/segmentfault/pacman/errors"
1215
"github.com/segmentfault/pacman/log"
1316
"golang.org/x/net/context"
@@ -16,8 +19,9 @@ import (
1619

1720
// EmailService kit service
1821
type EmailService struct {
19-
configRepo config.ConfigRepo
20-
emailRepo EmailRepo
22+
configRepo config.ConfigRepo
23+
emailRepo EmailRepo
24+
siteInfoRepo siteinfo_common.SiteInfoRepo
2125
}
2226

2327
// EmailRepo email repository
@@ -27,10 +31,11 @@ type EmailRepo interface {
2731
}
2832

2933
// NewEmailService email service
30-
func NewEmailService(configRepo config.ConfigRepo, emailRepo EmailRepo) *EmailService {
34+
func NewEmailService(configRepo config.ConfigRepo, emailRepo EmailRepo, siteInfoRepo siteinfo_common.SiteInfoRepo) *EmailService {
3135
return &EmailService{
32-
configRepo: configRepo,
33-
emailRepo: emailRepo,
36+
configRepo: configRepo,
37+
emailRepo: emailRepo,
38+
siteInfoRepo: siteInfoRepo,
3439
}
3540
}
3641

@@ -120,14 +125,35 @@ func (es *EmailService) VerifyUrlExpired(ctx context.Context, code string) (cont
120125
return content
121126
}
122127

123-
func (es *EmailService) RegisterTemplate(registerUrl string) (title, body string, err error) {
128+
func (es *EmailService) GetSiteGeneral(ctx context.Context) (resp schema.SiteGeneralResp, err error) {
129+
var (
130+
siteType = "general"
131+
siteInfo *entity.SiteInfo
132+
exist bool
133+
)
134+
resp = schema.SiteGeneralResp{}
135+
136+
siteInfo, exist, err = es.siteInfoRepo.GetByType(ctx, siteType)
137+
if !exist {
138+
return
139+
}
140+
141+
_ = json.Unmarshal([]byte(siteInfo.Content), &resp)
142+
return
143+
}
144+
145+
func (es *EmailService) RegisterTemplate(ctx context.Context, registerUrl string) (title, body string, err error) {
124146
ec, err := es.GetEmailConfig()
125147
if err != nil {
126148
return
127149
}
150+
siteinfo, err := es.GetSiteGeneral(ctx)
151+
if err != nil {
152+
return
153+
}
128154

129155
templateData := RegisterTemplateData{
130-
SiteName: ec.FromName, RegisterUrl: registerUrl,
156+
SiteName: siteinfo.Name, RegisterUrl: registerUrl,
131157
}
132158
tmpl, err := template.New("register_title").Parse(ec.RegisterTitle)
133159
if err != nil {
@@ -152,13 +178,18 @@ func (es *EmailService) RegisterTemplate(registerUrl string) (title, body string
152178
return titleBuf.String(), bodyBuf.String(), nil
153179
}
154180

155-
func (es *EmailService) PassResetTemplate(passResetUrl string) (title, body string, err error) {
181+
func (es *EmailService) PassResetTemplate(ctx context.Context, passResetUrl string) (title, body string, err error) {
156182
ec, err := es.GetEmailConfig()
157183
if err != nil {
158184
return
159185
}
160186

161-
templateData := PassResetTemplateData{SiteName: ec.FromName, PassResetUrl: passResetUrl}
187+
siteinfo, err := es.GetSiteGeneral(ctx)
188+
if err != nil {
189+
return
190+
}
191+
192+
templateData := PassResetTemplateData{SiteName: siteinfo.Name, PassResetUrl: passResetUrl}
162193
tmpl, err := template.New("pass_reset_title").Parse(ec.PassResetTitle)
163194
if err != nil {
164195
return "", "", err
@@ -181,14 +212,18 @@ func (es *EmailService) PassResetTemplate(passResetUrl string) (title, body stri
181212
return titleBuf.String(), bodyBuf.String(), nil
182213
}
183214

184-
func (es *EmailService) ChangeEmailTemplate(changeEmailUrl string) (title, body string, err error) {
215+
func (es *EmailService) ChangeEmailTemplate(ctx context.Context, changeEmailUrl string) (title, body string, err error) {
185216
ec, err := es.GetEmailConfig()
186217
if err != nil {
187218
return
188219
}
189220

221+
siteinfo, err := es.GetSiteGeneral(ctx)
222+
if err != nil {
223+
return
224+
}
190225
templateData := ChangeEmailTemplateData{
191-
SiteName: ec.FromName,
226+
SiteName: siteinfo.Name,
192227
ChangeEmailUrl: changeEmailUrl,
193228
}
194229
tmpl, err := template.New("email_change_title").Parse(ec.ChangeTitle)
@@ -213,14 +248,19 @@ func (es *EmailService) ChangeEmailTemplate(changeEmailUrl string) (title, body
213248
return titleBuf.String(), bodyBuf.String(), nil
214249
}
215250

216-
func (es *EmailService) TestTemplate() (title, body string, err error) {
251+
func (es *EmailService) TestTemplate(ctx context.Context) (title, body string, err error) {
217252
ec, err := es.GetEmailConfig()
218253
if err != nil {
219254
return
220255
}
221256

257+
siteinfo, err := es.GetSiteGeneral(ctx)
258+
if err != nil {
259+
return
260+
}
261+
222262
templateData := TestTemplateData{
223-
SiteName: ec.FromName,
263+
SiteName: siteinfo.Name,
224264
}
225265

226266
titleBuf := &bytes.Buffer{}

internal/service/siteinfo_service.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ func (s *SiteInfoService) UpdateSMTPConfig(ctx context.Context, req *schema.Upda
143143
return err
144144
}
145145
if len(req.TestEmailRecipient) > 0 {
146-
title, body, err := s.emailService.TestTemplate()
146+
title, body, err := s.emailService.TestTemplate(ctx)
147147
if err != nil {
148148
return err
149149
}

internal/service/user_service.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ func (us *UserService) RetrievePassWord(ctx context.Context, req *schema.UserRet
166166
}
167167
code := uuid.NewString()
168168
verifyEmailUrl := fmt.Sprintf("%s/users/password-reset?code=%s", us.serviceConfig.WebHost, code)
169-
title, body, err := us.emailService.PassResetTemplate(verifyEmailUrl)
169+
title, body, err := us.emailService.PassResetTemplate(ctx, verifyEmailUrl)
170170
if err != nil {
171171
return "", err
172172
}
@@ -316,7 +316,7 @@ func (us *UserService) UserRegisterByEmail(ctx context.Context, registerUserInfo
316316
}
317317
code := uuid.NewString()
318318
verifyEmailUrl := fmt.Sprintf("%s/users/account-activation?code=%s", us.serviceConfig.WebHost, code)
319-
title, body, err := us.emailService.RegisterTemplate(verifyEmailUrl)
319+
title, body, err := us.emailService.RegisterTemplate(ctx, verifyEmailUrl)
320320
if err != nil {
321321
return nil, err
322322
}
@@ -359,7 +359,7 @@ func (us *UserService) UserVerifyEmailSend(ctx context.Context, userID string) e
359359
}
360360
code := uuid.NewString()
361361
verifyEmailUrl := fmt.Sprintf("%s/users/account-activation?code=%s", us.serviceConfig.WebHost, code)
362-
title, body, err := us.emailService.RegisterTemplate(verifyEmailUrl)
362+
title, body, err := us.emailService.RegisterTemplate(ctx, verifyEmailUrl)
363363
if err != nil {
364364
return err
365365
}
@@ -509,7 +509,7 @@ func (us *UserService) UserChangeEmailSendCode(ctx context.Context, req *schema.
509509
}
510510
code := uuid.NewString()
511511
verifyEmailUrl := fmt.Sprintf("%s/users/confirm-new-email?code=%s", us.serviceConfig.WebHost, code)
512-
title, body, err := us.emailService.ChangeEmailTemplate(verifyEmailUrl)
512+
title, body, err := us.emailService.ChangeEmailTemplate(ctx, verifyEmailUrl)
513513
if err != nil {
514514
return err
515515
}

0 commit comments

Comments
 (0)