This repository has been archived on 2022-08-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
outline/server/emails/index.js
Tom Moor 8cbcb77486 Base model refactor (#810)
* Big upgrades

* WIP: Stash

* Stash, 30 flow errors left

* Downgrade mobx

* WIP

* When I understand the difference between class and instance methods

* 💚

* Fixes: File import
Model saving edge cases
pinning and starring docs
Collection editing
Upgrade mobx devtools

* Notification settings saving works

* Disabled settings

* Document mailer

* Working notifications

* Colletion created notification
Ensure not notified for own actions

* Tidy up

* Document updated event only for document creation
Add indexes
Notification setting on user creation

* Commentary

* Fixed: Notification setting on signup

* Fix document move / duplicate stale data
Add BaseModel.refresh method

* Fixes: Title in sidebar not updated after editing document

* 💚

* Improve / restore error handling
Better handle offline errors

* 👕
2018-12-04 22:24:30 -08:00

40 lines
1.0 KiB
JavaScript

// @flow
import Koa from 'koa';
import Router from 'koa-router';
import { NotFoundError } from '../errors';
import { Mailer } from '../mailer';
const emailPreviews = new Koa();
const router = new Router();
router.get('/:type/:format', async ctx => {
let mailerOutput;
let mailer = new Mailer();
mailer.transporter = {
sendMail: data => (mailerOutput = data),
};
switch (ctx.params.type) {
// case 'emailWithProperties':
// mailer.emailWithProperties('user@example.com', {...properties});
// break;
default:
if (Object.getOwnPropertyNames(mailer).includes(ctx.params.type)) {
// $FlowIssue flow doesn't like this but we're ok with it
mailer[ctx.params.type]('user@example.com');
} else throw new NotFoundError('Email template could not be found');
}
if (!mailerOutput) return;
if (ctx.params.format === 'text') {
ctx.body = mailerOutput.text;
} else {
ctx.body = mailerOutput.html;
}
});
emailPreviews.use(router.routes());
export default emailPreviews;