36 lines
724 B
JavaScript
36 lines
724 B
JavaScript
// @flow
|
|
import Koa from 'koa';
|
|
import Router from 'koa-router';
|
|
import { Mailer } from '../mailer';
|
|
|
|
const emailPreviews = new Koa();
|
|
const router = new Router();
|
|
|
|
router.get('/:type/:format', async ctx => {
|
|
const previewMailer = new Mailer();
|
|
let mailerOutput;
|
|
previewMailer.transporter = {
|
|
sendMail: data => (mailerOutput = data),
|
|
};
|
|
|
|
switch (ctx.params.type) {
|
|
case 'welcome':
|
|
previewMailer.welcome('user@example.com');
|
|
break;
|
|
default:
|
|
console.log(1);
|
|
}
|
|
|
|
if (!mailerOutput) return;
|
|
|
|
if (ctx.params.format === 'text') {
|
|
ctx.body = mailerOutput.text;
|
|
} else {
|
|
ctx.body = mailerOutput.html;
|
|
}
|
|
});
|
|
|
|
emailPreviews.use(router.routes());
|
|
|
|
export default emailPreviews;
|