diff --git a/packages/component-aws-ses/index.js b/packages/component-aws-ses/index.js deleted file mode 100644 index b54639e30fd890a999ba73bcf5ab581788aeaa82..0000000000000000000000000000000000000000 --- a/packages/component-aws-ses/index.js +++ /dev/null @@ -1,3 +0,0 @@ -require('dotenv').config() - -module.exports = require('./src/EmailBackend') diff --git a/packages/component-aws-ses/src/EmailBackend.js b/packages/component-aws-ses/src/EmailBackend.js deleted file mode 100644 index 5c8682c9d4356ae6e24e0eea80b8985483bd20d4..0000000000000000000000000000000000000000 --- a/packages/component-aws-ses/src/EmailBackend.js +++ /dev/null @@ -1,33 +0,0 @@ -const nodemailer = require('nodemailer') -const config = require('config') -const logger = require('@pubsweet/logger') -const AWS = require('aws-sdk') - -const mailerConfig = config.get('mailer') - -module.exports = { - sendEmail: (toEmail, subject, textBody, htmlBody) => { - const transporter = nodemailer.createTransport({ - SES: new AWS.SES({ - secretAccessKey: process.env.AWS_SES_SECRET_KEY, - accessKeyId: process.env.AWS_SES_ACCESS_KEY, - region: process.env.AWS_SES_REGION, - }), - }) - transporter.sendMail( - { - from: mailerConfig.from, - to: toEmail, - subject, - text: textBody, - html: htmlBody, - }, - (err, info) => { - if (err) { - logger.error(err) - } - logger.debug(info) - }, - ) - }, -} diff --git a/packages/component-mail-service/package.json b/packages/component-mail-service/package.json index cf598f847e35150270a8612d6bde0a87bae64a66..cb79ab3a4626231243fd6149417cd338d179da7a 100644 --- a/packages/component-mail-service/package.json +++ b/packages/component-mail-service/package.json @@ -18,7 +18,7 @@ "peerDependencies": { "@pubsweet/logger": "^0.0.1", "pubsweet-server": "^1.0.1", - "@pubsweet/component-aws-ses": "^0.1.0" + "@pubsweet/component-send-email": "^0.1.0" }, "publishConfig": { "access": "public" diff --git a/packages/component-mail-service/src/Mail.js b/packages/component-mail-service/src/Mail.js index 42981c188ba0cc72b56f3cd719c26272f3164388..cbcc4b2db8d718ec75fb899025eae7751b70f65b 100644 --- a/packages/component-mail-service/src/Mail.js +++ b/packages/component-mail-service/src/Mail.js @@ -1,7 +1,7 @@ const fs = require('fs') const handlebars = require('handlebars') const querystring = require('querystring') -const SES = require('@pubsweet/component-aws-ses') +const Email = require('@pubsweet/component-send-email') const config = require('config') const resetUrl = config.get('invite-reset-password.url') @@ -33,7 +33,7 @@ module.exports = { const htmlBody = htmlTemplate(replacements) const textBody = textTemplate(replacements) - SES.sendEmail(email, subject, textBody, htmlBody) + Email.send(email, subject, textBody, htmlBody) }, } diff --git a/packages/component-aws-ses/.gitignore b/packages/component-send-email/.gitignore similarity index 100% rename from packages/component-aws-ses/.gitignore rename to packages/component-send-email/.gitignore diff --git a/packages/component-aws-ses/README.md b/packages/component-send-email/README.md similarity index 100% rename from packages/component-aws-ses/README.md rename to packages/component-send-email/README.md diff --git a/packages/component-send-email/index.js b/packages/component-send-email/index.js new file mode 100644 index 0000000000000000000000000000000000000000..638be56beb2320e02d60ee4601a570c689d7ba95 --- /dev/null +++ b/packages/component-send-email/index.js @@ -0,0 +1,3 @@ +require('dotenv').config() + +module.exports = require('./src/SendEmail') diff --git a/packages/component-aws-ses/package.json b/packages/component-send-email/package.json similarity index 56% rename from packages/component-aws-ses/package.json rename to packages/component-send-email/package.json index 4ba5168e166742135891dc8ba4373f404b4c7dfc..abbf0d9257e7efe49f3b7a4b13ad1c9e7bbae14f 100644 --- a/packages/component-aws-ses/package.json +++ b/packages/component-send-email/package.json @@ -1,5 +1,5 @@ { - "name": "@pubsweet/component-aws-ses", + "name": "@pubsweet/component-send-email", "version": "0.2.0", "description": "xpub aws ses configured for faraday", "license": "MIT", @@ -13,17 +13,9 @@ "dependencies": { "aws-sdk": "^2.185.0", "body-parser": "^1.17.2", - "node-mocks-http": "^1.6.6", "nodemailer": "^4.4.2" }, "peerDependencies": { - "@pubsweet/logger": "^0.0.1", - "pubsweet": "^1.1.1", - "pubsweet-client": "^1.1.1", - "pubsweet-server": "^1.0.1" - }, - "devDependencies": { - "jest": "^22.1.1", - "supertest": "^3.0.0" + "@pubsweet/logger": "^0.0.1" } } diff --git a/packages/component-send-email/src/SendEmail.js b/packages/component-send-email/src/SendEmail.js new file mode 100644 index 0000000000000000000000000000000000000000..42dba99b77913f39d78d4d3b78f8ff66a7147b3d --- /dev/null +++ b/packages/component-send-email/src/SendEmail.js @@ -0,0 +1,25 @@ +const nodemailer = require('nodemailer') +const logger = require('@pubsweet/logger') +const config = require('./config') + +module.exports = { + send: (toEmail, subject, textBody, htmlBody) => { + const mailerConfig = config.mailer + const transporter = nodemailer.createTransport(mailerConfig.transport) + transporter.sendMail( + { + from: mailerConfig.from, + to: toEmail, + subject, + text: textBody, + html: htmlBody, + }, + (err, info) => { + if (err) { + logger.error(err) + } + logger.debug(info) + }, + ) + }, +} diff --git a/packages/component-send-email/src/config.js b/packages/component-send-email/src/config.js new file mode 100644 index 0000000000000000000000000000000000000000..4a0e2fcec8b011a955002f6a207eba89245f0aba --- /dev/null +++ b/packages/component-send-email/src/config.js @@ -0,0 +1,14 @@ +const AWS = require('aws-sdk') + +module.exports = { + mailer: { + from: process.env.EMAIL_SENDER, + transport: { + SES: new AWS.SES({ + accessKeyId: process.env.AWS_SES_ACCESS_KEY, + secretAccessKey: process.env.AWS_SES_SECRET_KEY, + region: process.env.AWS_SES_REGION, + }), + }, + }, +} diff --git a/packages/xpub-faraday/package.json b/packages/xpub-faraday/package.json index 5a394862a73771f994ca598581472b3d3677f5eb..b5f745123b8d861d432231839d87cf365a6a1657 100644 --- a/packages/xpub-faraday/package.json +++ b/packages/xpub-faraday/package.json @@ -8,12 +8,13 @@ "url": "https://gitlab.coko.foundation/xpub/xpub" }, "dependencies": { - "aws-sdk": "^2.197.0", - "@pubsweet/ui": "^2.0.0", "@pubsweet/component-aws-s3": "^0.1.1", + "@pubsweet/ui": "^2.0.0", + "aws-sdk": "^2.197.0", "babel-core": "^6.26.0", "config": "^1.26.2", "dotenv": "^5.0.0", + "flavors": "^3.3.1", "font-awesome": "^4.7.0", "fs-extra": "^4.0.2", "history": "^4.7.2", @@ -26,16 +27,16 @@ "pubsweet-client": "^2.1.0", "pubsweet-component-ink-backend": "^0.1.1", "pubsweet-component-ink-frontend": "^1.0.0", + "pubsweet-component-invite": "^0.0.1", "pubsweet-component-login": "^1.0.1", "pubsweet-component-signup": "^1.0.0", "pubsweet-component-xpub-manuscript": "^0.0.2", "pubsweet-server": "^1.0.1", - "pubsweet-component-invite": "^0.0.1", "react": "^16.2.0", - "react-dom": "^16.2.0", - "react-router-dom": "^4.2.2", "react-dnd": "^2.5.4", "react-dnd-html5-backend": "^2.5.4", + "react-dom": "^16.2.0", + "react-router-dom": "^4.2.2", "recompose": "^0.26.0", "redux": "^3.6.0", "redux-form": "^7.0.3", diff --git a/yarn.lock b/yarn.lock index 17a9872bc795a46e40d990c3e2a83bfadcf21904..14345b9125fd10ff008a377e7cf4aa427d6469f6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2981,6 +2981,10 @@ deep-is@~0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" +deepmerge@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-2.0.1.tgz#25c1c24f110fb914f80001b925264dd77f3f4312" + default-require-extensions@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-1.0.0.tgz#f37ea15d3e13ffd9b437d33e1a75b5fb97874cb8" @@ -4257,6 +4261,12 @@ flatten@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782" +flavors@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/flavors/-/flavors-3.3.1.tgz#352baa433b4d6875474509612596ca95b9b7c81d" + dependencies: + deepmerge "^2.0.1" + flush-write-stream@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.0.2.tgz#c81b90d8746766f1a609a46809946c45dd8ae417"