Skip to content
This repository was archived by the owner on Apr 3, 2019. It is now read-only.

Commit d09759c

Browse files
philboothvladikoff
authored andcommitted
fix(project): move mailer files into proper directories (#1676) r=vladikoff
1 parent 0c52a7c commit d09759c

File tree

97 files changed

+7889
-13856
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

97 files changed

+7889
-13856
lines changed

.gitignore

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,5 @@ secret*
1717
/.vagrant
1818
.nyc_output
1919
npm-debug.log
20-
mailer/server.pot
21-
mailer/.mail_output
20+
server.pot
21+
.mail_output

.nsprc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
{
22
"exceptions": [
3+
// i18n-abide@0.0.25
4+
"https://nodesecurity.io/advisories/39",
5+
"https://nodesecurity.io/advisories/48"
36
]
47
}

.travis.yml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,7 @@ script:
4646
- COVERALLS_REPO_TOKEN=vKN3jjhAOwxkv9HG0VBX4EYIlWLPwiJ9d npm test
4747
- npm run test-e2e
4848
# Test fxa-auth-mailer
49-
- cd mailer
5049
- grunt templates
51-
- npm test
5250
- grunt l10n-extract
53-
- cd ..
5451
# NSP check
5552
- grunt nsp

Gruntfile.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,12 @@
55
module.exports = function (grunt) {
66
require('load-grunt-tasks')(grunt)
77

8+
grunt.initConfig({
9+
pkg: grunt.file.readJSON('package.json')
10+
})
11+
812
grunt.loadTasks('grunttasks')
913

1014
grunt.registerTask('default', ['eslint', 'copyright'])
15+
grunt.registerTask('mailer', ['templates', 'copy:strings', 'l10n-extract'])
1116
}

mailer/bin/server.js renamed to bin/mailer_server.js

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,26 +3,26 @@
33
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
44

55
var restify = require('restify')
6-
var config = require('../config')
6+
var config = require('../mailer/config')
77

8-
var log = require('../log')('server')
8+
var log = require('../lib/senders/log')('server')
99
var mailConfig = config.get('mail')
1010

1111
var packageJson = require('../package.json')
1212
var P = require('bluebird')
1313

1414
// NOTE: Mailer is also used by fxa-auth-server directly with an old logging interface
1515
// the legacy log module provides an interface to convert old logs to new mozlog logging.
16-
var mailerLog = require('../log')('mailer')
17-
var legacyMailerLog = require('../legacy_log')(mailerLog)
18-
var Mailer = require('../mailer')(legacyMailerLog)
16+
var mailerLog = require('../lib/senders/log')('mailer')
17+
var legacyMailerLog = require('../lib/senders/legacy_log')(mailerLog)
18+
var Mailer = require('../lib/senders/email')(legacyMailerLog)
1919

20-
var dbConnect = require('../lib/db_connect')()
20+
var dbConnect = require('../lib/senders/db_connect')()
2121

2222
P.all(
2323
[
24-
require('../translator')(config.get('locales'), config.get('defaultLanguage')),
25-
require('../templates')()
24+
require('../lib/senders/translator')(config.get('locales'), config.get('defaultLanguage')),
25+
require('../lib/senders/templates')()
2626
]
2727
)
2828
.spread(
@@ -35,7 +35,7 @@ P.all(
3535
dbConnect()
3636
.then(function (db) {
3737
// fetch and process verification reminders
38-
var verificationReminders = require('../lib/verification-reminders')(mailer, db)
38+
var verificationReminders = require('../lib/senders/verification-reminders')(mailer, db)
3939
verificationReminders.poll()
4040
})
4141
.catch(function (err) {

grunttasks/bump.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ module.exports = function (grunt) {
1313
bumpVersion: true,
1414
commit: true,
1515
commitMessage: 'Release v%VERSION%',
16-
commitFiles: ['package.json', 'npm-shrinkwrap.json', 'CHANGELOG.md'],
16+
commitFiles: ['package.json', 'npm-shrinkwrap.json', 'CHANGELOG.md', 'AUTHORS'],
1717
createTag: true,
1818
tagName: 'v%VERSION%',
1919
tagMessage: 'Version %VERSION%',

mailer/grunttasks/l10n-extract.js renamed to grunttasks/l10n-extract.js

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ module.exports = function (grunt) {
3030
var done = this.async()
3131

3232
var walker = extract({
33-
'input-dir': path.join(pkgroot, 'templates'),
33+
'input-dir': path.join(pkgroot, 'lib/senders/templates'),
3434
'output-dir': pkgroot,
3535
'output': 'server.pot',
3636
'join-existing': true,
@@ -43,12 +43,7 @@ module.exports = function (grunt) {
4343

4444
walker.on('end', function () {
4545
var jsWalker = extract({
46-
'input-dir': pkgroot,
47-
/* node_modules and test should not contain any strings
48-
* Gruntfile causes an error and should contain no strings
49-
* bin/server.js extracts "/", so it is excluded.
50-
*/
51-
exclude: /(node_modules|test|Gruntfile|grunttasks|bin|scripts|\.git|config)/,
46+
'input-dir': path.join(pkgroot, 'lib/senders'),
5247
'output-dir': pkgroot,
5348
'output': 'server.pot',
5449
'join-existing': true,

mailer/grunttasks/templates.js renamed to grunttasks/templates.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ module.exports = function (grunt) {
99

1010
grunt.config('nunjucks', {
1111
options: {
12+
paths: 'lib/senders/',
1213
tags: {
1314
blockStart: '<%',
1415
blockEnd: '%>',
@@ -23,9 +24,9 @@ module.exports = function (grunt) {
2324
files: [
2425
{
2526
expand: true,
26-
cwd: 'partials/',
27+
cwd: 'lib/senders/partials/',
2728
src: '*.html',
28-
dest: 'templates/',
29+
dest: 'lib/senders/templates/',
2930
ext: '.html'
3031
}
3132
]

mailer/lib/db.js renamed to lib/senders/db.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
* License, v. 2.0. If a copy of the MPL was not distributed with this
33
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
44

5-
var butil = require('./crypto/butil')
6-
var log = require('../log')('db')
7-
var P = require('./promise')
5+
var butil = require('../crypto/butil')
6+
var log = require('./log')('db')
7+
var P = require('../promise')
88
var Pool = require('./pool')
99
var qs = require('querystring')
1010

@@ -40,7 +40,7 @@ module.exports = function () {
4040
.then(
4141
function (body) {
4242
var data = bufferize(body)
43-
data.emailVerified = !!data.emailVerified
43+
data.emailVerified = !! data.emailVerified
4444
return data
4545
},
4646
function (err) {
@@ -55,7 +55,7 @@ module.exports = function () {
5555
.then(
5656
function (body) {
5757
var data = bufferize(body)
58-
data.emailVerified = !!data.emailVerified
58+
data.emailVerified = !! data.emailVerified
5959
return data
6060
},
6161
function (err) {

mailer/lib/db_connect.js renamed to lib/senders/db_connect.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
44

55
var P = require('bluebird')
6-
var config = require('../config')
7-
var log = require('../log')('db')
6+
var config = require('../../mailer/config')
7+
var log = require('./log')('db')
88

99
var DB = require('./db')()
1010

@@ -29,10 +29,10 @@ module.exports = function () {
2929
function (err) {
3030
if (err && err.message && err.message.indexOf('ECONNREFUSED') > -1) {
3131
log.warn('db', {message: 'Failed to connect to database, retrying...'})
32-
if (!cancelled) {
32+
if (! cancelled) {
3333
return P.delay(dbConnectionRetry)
3434
.then(function () {
35-
if (!cancelled) {
35+
if (! cancelled) {
3636
return dbConnectPoll()
3737
}
3838
})
@@ -51,7 +51,7 @@ module.exports = function () {
5151
// report any errors to the db log and rethrow it to the consumer.
5252
log.error('db', {err: err})
5353
throw err
54-
});
54+
})
5555
}
5656

5757
return dbConnect
File renamed without changes.

lib/senders.js renamed to lib/senders/index.js

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,16 @@
44

55
'use strict'
66

7-
const P = require('./promise')
8-
const createSenders = require('../mailer/index')
7+
var P = require('../promise')
8+
// This indirection exists to accommodate different config properties
9+
// in the old auth mailer. If/when the two config files are merged and
10+
// there's nothing left that imports mailer/config, it is safe to merge
11+
// raw.js and this file into one. Be careful not to mix the arguments
12+
// up when you do that, they expect config and log in a different order.
13+
var createSenders = require('./legacy_index')
914

10-
module.exports = (config, log) => {
11-
const defaultLanguage = config.i18n.defaultLanguage
15+
module.exports = function (config, log) {
16+
var defaultLanguage = config.i18n.defaultLanguage
1217

1318
return createSenders(
1419
log,
@@ -20,8 +25,8 @@ module.exports = (config, log) => {
2025
}
2126
)
2227
.then(
23-
senders => {
24-
const mailer = senders.email
28+
function (senders) {
29+
var mailer = senders.email
2530
mailer.sendVerifyCode = function (account, code, opts) {
2631
return P.resolve(mailer.verifyEmail(
2732
{

mailer/index.js renamed to lib/senders/legacy_index.js

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,16 @@
22
* License, v. 2.0. If a copy of the MPL was not distributed with this
33
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
44

5-
var P = require('bluebird')
6-
var createMailer = require('./mailer')
7-
var createSms = require('./lib/sms')
5+
// This module exists because some files still use the old mailer config.
6+
// Those files should import this module rather than its sibling index.js.
7+
// If/when we eliminate the old mailer config and everything is importing
8+
// index.js, we can merge this into there and get rid of the indirection.
9+
// Be careful when doing that btw, they expect the log and config arguments
10+
// in a different order.
11+
12+
var P = require('../promise')
13+
var createMailer = require('./email')
14+
var createSms = require('./sms')
815

916
module.exports = function (log, config, sender) {
1017
var Mailer = createMailer(log)
File renamed without changes.

mailer/log.js renamed to lib/senders/log.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
var mozlog = require('mozlog')
66

7-
var logConfig = require('./config').get('logging')
7+
var logConfig = require('../../mailer/config').get('logging')
88

99
mozlog.config(logConfig)
1010

File renamed without changes.
File renamed without changes.
File renamed without changes.

mailer/lib/pool.js renamed to lib/senders/pool.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
* License, v. 2.0. If a copy of the MPL was not distributed with this
33
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
44

5-
var P = require('./promise')
5+
var P = require('../promise')
66
var Poolee = require('poolee')
77

88
function parseUrl(url) {

mailer/lib/sms.js renamed to lib/senders/sms.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ module.exports = function (log, translator, templates, smsConfig) {
1616
apiKey: smsConfig.apiKey,
1717
apiSecret: smsConfig.apiSecret
1818
})
19-
var sendSms = P.promisify(nexmo.message.sendSms, { context: nexmo.message })
19+
var sendSms = P.promisify(nexmo.message.sendSms, nexmo.message)
2020

2121
return {
2222
send: function (phoneNumber, senderId, messageId, acceptLanguage) {
File renamed without changes.

mailer/templates/index.js renamed to lib/senders/templates/index.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
/* This Source Code Form is subject to the terms of the Mozilla Public
2+
* License, v. 2.0. If a copy of the MPL was not distributed with this
3+
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4+
15
var path = require('path')
26
var P = require('bluebird')
37
var handlebars = require('handlebars')
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

mailer/translator.js renamed to lib/senders/translator.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
/* This Source Code Form is subject to the terms of the Mozilla Public
2+
* License, v. 2.0. If a copy of the MPL was not distributed with this
3+
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4+
15
var path = require('path')
26
var i18n = require('i18n-abide')
37
var Jed = require('jed')
@@ -14,7 +18,7 @@ module.exports = function (locales, defaultLanguage) {
1418
return poParseFile(
1519
path.join(
1620
__dirname,
17-
'node_modules/fxa-content-server-l10n/locale',
21+
'../../node_modules/fxa-content-server-l10n/locale',
1822
i18n.normalizeLocale(locale),
1923
'LC_MESSAGES/server.po'
2024
),

mailer/lib/verification-reminders.js renamed to lib/senders/verification-reminders.js

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
* License, v. 2.0. If a copy of the MPL was not distributed with this
33
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
44

5-
var logger = require('../log')('verification-reminders')
6-
var P = require('./promise')
7-
var config = require('../config')
5+
var logger = require('./log')('verification-reminders')
6+
var P = require('../promise')
7+
var config = require('../../mailer/config')
88
var reminderConfig = config.get('verificationReminders')
99

1010
module.exports = function (mailer, db, options) {
@@ -22,25 +22,25 @@ module.exports = function (mailer, db, options) {
2222
* @private
2323
*/
2424
_processReminder: function (reminderData) {
25-
log.debug('_processReminder', reminderData)
25+
log.debug('_processReminder', reminderData)
2626

27-
return db.account(reminderData.uid)
28-
.then(function (account) {
29-
if (! account.emailVerified) {
30-
// if account is not verified then send the reminder
31-
mailer.verificationReminderEmail({
32-
email: account.email,
33-
uid: account.uid.toString('hex'),
34-
code: account.emailCode.toString('hex'),
35-
type: reminderData.type,
36-
acceptLanguage: account.locale
37-
})
38-
} else {
39-
log.debug('_processReminder', { msg: 'Already Verified' })
40-
}
41-
}, function (err) {
42-
log.error('_processReminder', { err: err })
43-
})
27+
return db.account(reminderData.uid)
28+
.then(function (account) {
29+
if (! account.emailVerified) {
30+
// if account is not verified then send the reminder
31+
mailer.verificationReminderEmail({
32+
email: account.email,
33+
uid: account.uid.toString('hex'),
34+
code: account.emailCode.toString('hex'),
35+
type: reminderData.type,
36+
acceptLanguage: account.locale
37+
})
38+
} else {
39+
log.debug('_processReminder', { msg: 'Already Verified' })
40+
}
41+
}, function (err) {
42+
log.error('_processReminder', { err: err })
43+
})
4444
},
4545
_continuousPoll: function () {
4646
var self = this

mailer/.gitignore

Lines changed: 0 additions & 5 deletions
This file was deleted.

mailer/Gruntfile.js

Lines changed: 0 additions & 19 deletions
This file was deleted.

0 commit comments

Comments
 (0)