@@ -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
1821type 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 {}
0 commit comments