NewAnswerTemplate new answer template
(ctx context.Context, raw *schema.NewAnswerTemplateRawData)
| 231 | |
| 232 | // NewAnswerTemplate new answer template |
| 233 | func (es *EmailService) NewAnswerTemplate(ctx context.Context, raw *schema.NewAnswerTemplateRawData) ( |
| 234 | title, body string, err error) { |
| 235 | siteInfo, err := es.siteInfoService.GetSiteGeneral(ctx) |
| 236 | if err != nil { |
| 237 | return |
| 238 | } |
| 239 | seoInfo, err := es.siteInfoService.GetSiteSeo(ctx) |
| 240 | if err != nil { |
| 241 | return |
| 242 | } |
| 243 | templateData := &schema.NewAnswerTemplateData{ |
| 244 | SiteName: siteInfo.Name, |
| 245 | DisplayName: raw.AnswerUserDisplayName, |
| 246 | QuestionTitle: raw.QuestionTitle, |
| 247 | AnswerUrl: display.AnswerURL(seoInfo.Permalink, siteInfo.SiteUrl, raw.QuestionID, raw.QuestionTitle, raw.AnswerID), |
| 248 | AnswerSummary: raw.AnswerSummary, |
| 249 | UnsubscribeUrl: fmt.Sprintf("%s/users/unsubscribe?code=%s", siteInfo.SiteUrl, raw.UnsubscribeCode), |
| 250 | } |
| 251 | |
| 252 | lang := handler.GetLangByCtx(ctx) |
| 253 | title = translator.TrWithData(lang, constant.EmailTplKeyNewAnswerTitle, templateData) |
| 254 | body = translator.TrWithData(lang, constant.EmailTplKeyNewAnswerBody, &schema.NewAnswerTemplateData{ |
| 255 | SiteName: escapeEmailHTMLText(templateData.SiteName), |
| 256 | DisplayName: escapeEmailHTMLText(templateData.DisplayName), |
| 257 | QuestionTitle: escapeEmailHTMLText(templateData.QuestionTitle), |
| 258 | AnswerUrl: templateData.AnswerUrl, |
| 259 | AnswerSummary: escapeEmailHTMLText(templateData.AnswerSummary), |
| 260 | UnsubscribeUrl: templateData.UnsubscribeUrl, |
| 261 | }) |
| 262 | return title, body, nil |
| 263 | } |
| 264 | |
| 265 | // NewInviteAnswerTemplate new invite answer template |
| 266 | func (es *EmailService) NewInviteAnswerTemplate(ctx context.Context, raw *schema.NewInviteAnswerTemplateRawData) ( |
no test coverage detected