aysnc send email

This commit is contained in:
MaysWind
2023-09-10 16:49:24 +08:00
parent 5d0e115438
commit 64ea3e05d8
4 changed files with 31 additions and 38 deletions
+6 -5
View File
@@ -68,12 +68,13 @@ func (a *ForgetPasswordsApi) UserForgetPasswordRequestHandler(c *core.Context) (
return nil, errs.ErrTokenGenerating return nil, errs.ErrTokenGenerating
} }
err = a.forgetPasswords.SendPasswordResetEmail(c, user, token, c.GetClientLocale()) go func() {
err = a.forgetPasswords.SendPasswordResetEmail(c, user, token, c.GetClientLocale())
if err != nil { if err != nil {
log.WarnfWithRequestId(c, "[forget_passwords.UserForgetPasswordRequestHandler] cannot send email to \"%s\", because %s", user.Email, err.Error()) log.WarnfWithRequestId(c, "[forget_passwords.UserForgetPasswordRequestHandler] cannot send email to \"%s\", because %s", user.Email, err.Error())
return nil, errs.Or(err, errs.ErrOperationFailed) }
} }()
return true, nil return true, nil
} }
+24 -18
View File
@@ -99,11 +99,13 @@ func (a *UsersApi) UserRegisterHandler(c *core.Context) (interface{}, *errs.Erro
if err != nil { if err != nil {
log.ErrorfWithRequestId(c, "[users.UserRegisterHandler] failed to create email verify token for user \"uid:%d\", because %s", user.Uid, err.Error()) log.ErrorfWithRequestId(c, "[users.UserRegisterHandler] failed to create email verify token for user \"uid:%d\", because %s", user.Uid, err.Error())
} else { } else {
err = a.users.SendVerifyEmail(user, token, c.GetClientLocale()) go func() {
err = a.users.SendVerifyEmail(user, token, c.GetClientLocale())
if err != nil { if err != nil {
log.WarnfWithRequestId(c, "[users.UserRegisterHandler] cannot send verify email to \"%s\", because %s", user.Email, err.Error()) log.WarnfWithRequestId(c, "[users.UserRegisterHandler] cannot send verify email to \"%s\", because %s", user.Email, err.Error())
} }
}()
} }
} }
@@ -362,11 +364,13 @@ func (a *UsersApi) UserUpdateProfileHandler(c *core.Context) (interface{}, *errs
if err != nil { if err != nil {
log.ErrorfWithRequestId(c, "[users.UserUpdateProfileHandler] failed to create email verify token for user \"uid:%d\", because %s", user.Uid, err.Error()) log.ErrorfWithRequestId(c, "[users.UserUpdateProfileHandler] failed to create email verify token for user \"uid:%d\", because %s", user.Uid, err.Error())
} else { } else {
err = a.users.SendVerifyEmail(user, token, c.GetClientLocale()) go func() {
err = a.users.SendVerifyEmail(user, token, c.GetClientLocale())
if err != nil { if err != nil {
log.WarnfWithRequestId(c, "[users.UserUpdateProfileHandler] cannot send verify email to \"%s\", because %s", user.Email, err.Error()) log.WarnfWithRequestId(c, "[users.UserUpdateProfileHandler] cannot send verify email to \"%s\", because %s", user.Email, err.Error())
} }
}()
} }
} }
@@ -440,12 +444,13 @@ func (a *UsersApi) UserSendVerifyEmailByUnloginUserHandler(c *core.Context) (int
return nil, errs.ErrTokenGenerating return nil, errs.ErrTokenGenerating
} }
err = a.users.SendVerifyEmail(user, token, c.GetClientLocale()) go func() {
err = a.users.SendVerifyEmail(user, token, c.GetClientLocale())
if err != nil { if err != nil {
log.WarnfWithRequestId(c, "[users.UserSendVerifyEmailByUnloginUserHandler] cannot send email to \"%s\", because %s", user.Email, err.Error()) log.WarnfWithRequestId(c, "[users.UserSendVerifyEmailByUnloginUserHandler] cannot send email to \"%s\", because %s", user.Email, err.Error())
return nil, errs.Or(err, errs.ErrOperationFailed) }
} }()
return true, nil return true, nil
} }
@@ -479,12 +484,13 @@ func (a *UsersApi) UserSendVerifyEmailByLoginedUserHandler(c *core.Context) (int
return nil, errs.ErrTokenGenerating return nil, errs.ErrTokenGenerating
} }
err = a.users.SendVerifyEmail(user, token, c.GetClientLocale()) go func() {
err = a.users.SendVerifyEmail(user, token, c.GetClientLocale())
if err != nil { if err != nil {
log.WarnfWithRequestId(c, "[users.UserSendVerifyEmailByLoginedUserHandler] cannot send email to \"%s\", because %s", user.Email, err.Error()) log.WarnfWithRequestId(c, "[users.UserSendVerifyEmailByLoginedUserHandler] cannot send email to \"%s\", because %s", user.Email, err.Error())
return nil, errs.Or(err, errs.ErrOperationFailed) }
} }()
return true, nil return true, nil
} }
-4
View File
@@ -1,6 +1,4 @@
const defaultTimeout = 10000; // 10s const defaultTimeout = 10000; // 10s
const requestVerifyEmailTimeout = 30000; // 30s
const requestForgetPasswordTimeout = 30000; // 30s
const baseApiUrlPath = '/api'; const baseApiUrlPath = '/api';
const baseQrcodePath = '/qrcode'; const baseQrcodePath = '/qrcode';
const baseProxyUrlPath = '/proxy'; const baseProxyUrlPath = '/proxy';
@@ -11,8 +9,6 @@ const amapJavascriptUrl = 'https://webapi.amap.com/maps?v=2.0';
export default { export default {
defaultTimeout: defaultTimeout, defaultTimeout: defaultTimeout,
requestVerifyEmailTimeout: requestVerifyEmailTimeout,
requestForgetPasswordTimeout: requestForgetPasswordTimeout,
baseApiUrlPath: baseApiUrlPath, baseApiUrlPath: baseApiUrlPath,
baseQrcodePath: baseQrcodePath, baseQrcodePath: baseQrcodePath,
baseProxyUrlPath: baseProxyUrlPath, baseProxyUrlPath: baseProxyUrlPath,
+1 -11
View File
@@ -101,8 +101,6 @@ export default {
defaultCurrency, defaultCurrency,
firstDayOfWeek, firstDayOfWeek,
categories categories
}, {
timeout: api.requestVerifyEmailTimeout
}); });
}, },
verifyEmail: ({ token, requestNewToken }) => { verifyEmail: ({ token, requestNewToken }) => {
@@ -117,15 +115,11 @@ export default {
return axios.post('verify_email/resend.json', { return axios.post('verify_email/resend.json', {
email, email,
password password
}, {
timeout: api.requestVerifyEmailTimeout
}); });
}, },
requestResetPassword: ({ email }) => { requestResetPassword: ({ email }) => {
return axios.post('forget_password/request.json', { return axios.post('forget_password/request.json', {
email email
}, {
timeout: api.requestForgetPasswordTimeout
}); });
}, },
resetPassword: ({ email, token, password }) => { resetPassword: ({ email, token, password }) => {
@@ -190,14 +184,10 @@ export default {
shortDateFormat, shortDateFormat,
longTimeFormat, longTimeFormat,
shortTimeFormat shortTimeFormat
}, {
timeout: api.requestVerifyEmailTimeout
}); });
}, },
resendVerifyEmailByLoginedUser: () => { resendVerifyEmailByLoginedUser: () => {
return axios.post('v1/users/verify_email/resend.json', {}, { return axios.post('v1/users/verify_email/resend.json');
timeout: api.requestVerifyEmailTimeout
});
}, },
get2FAStatus: () => { get2FAStatus: () => {
return axios.get('v1/users/2fa/status.json'); return axios.get('v1/users/2fa/status.json');