forked from paralect/koa-api-starter
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathemail.service.js
63 lines (57 loc) · 1.2 KB
/
email.service.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
const { join } = require('path');
const MailService = require('@paralect/email-service');
const {
mailgun,
isTest,
landingUrl,
apiUrl,
} = require('config');
const { logger } = global;
const mailService = new MailService({
isSendEmail: !isTest,
mailgun,
templatesDir: join(__dirname, './assets/emails/dist'), // absolute path to templates directory
});
const _sendEmail = async (template, emailData, data = {}) => {
try {
await mailService.send(
template,
data,
{
from: 'Excited User <[email protected]>',
to: emailData.to,
subject: emailData.subject,
},
);
logger.debug(`Sending email [${template}]. The data is: ${JSON.stringify(data)}`);
} catch (e) {
logger.error(`Error in sending email. Data: ${e.message}`);
}
};
exports.sendSignupWelcome = (data) => {
_sendEmail(
'signup-welcome.html',
{
subject: 'Signup',
to: data.email,
},
{
...data,
landingUrl,
apiUrl,
},
);
};
exports.sendForgotPassword = (data) => {
_sendEmail(
'forgot-password.html',
{
subject: 'Forgot Password',
to: data.email,
},
{
...data,
landingUrl,
},
);
};