From 19ce7c9b53b5cb813487a210c5b6a9021fb04ca3 Mon Sep 17 00:00:00 2001 From: Matteo Pagliazzi Date: Fri, 13 Nov 2015 17:04:47 +0100 Subject: [PATCH] add tests for emails (wip) and encryption, misc fixes --- website/src/libs/api-v3/email.js | 23 ++++++++++++++--------- website/src/libs/api-v3/encryption.js | 1 + website/src/libs/api-v3/logger.js | 4 +++- 3 files changed, 18 insertions(+), 10 deletions(-) diff --git a/website/src/libs/api-v3/email.js b/website/src/libs/api-v3/email.js index 8d0cff0a8c..65cbcce02a 100644 --- a/website/src/libs/api-v3/email.js +++ b/website/src/libs/api-v3/email.js @@ -30,14 +30,18 @@ export function send (mailData) { .catch((error) => logger.error(error)); } -export function getUserInfo (user, fields) { +export function getUserInfo (user, fields = []) { let info = {}; if (fields.indexOf('name') !== -1) { - if (user.auth.local) { - info.name = user.profile.name || user.auth.local.username; - } else if (user.auth.facebook) { - info.name = user.profile.name || user.auth.facebook.displayName || user.auth.facebook.username; + info.name = user.profile && user.profile.name; + + if (!info.name) { + if (user.auth.local && user.auth.local.username) { + info.name = user.auth.local.username; + } else if (user.auth.facebook) { + info.name = user.auth.facebook.displayName || user.auth.facebook.username; + } } } @@ -54,14 +58,16 @@ export function getUserInfo (user, fields) { } if (fields.indexOf('canSend') !== -1) { - info.canSend = user.preferences.emailNotifications.unsubscribeFromAll !== true; + if (user.preferences && user.preferences.emailNotifications) { + info.canSend = user.preferences.emailNotifications.unsubscribeFromAll !== true; + } } return info; } // Send a transactional email using Mandrill through the external email server -export function txnEmail (mailingInfoArray, emailType, variables, personalVariables) { +export function sendTxn (mailingInfoArray, emailType, variables, personalVariables) { mailingInfoArray = Array.isArray(mailingInfoArray) ? mailingInfoArray : [mailingInfoArray]; variables = [ @@ -127,9 +133,8 @@ export function txnEmail (mailingInfoArray, emailType, variables, personalVariab } if (IS_PROD && mailingInfoArray.length > 0) { - request({ + request.post({ url: `${EMAIL_SERVER.url}/job`, - method: 'POST', auth: { user: EMAIL_SERVER.auth.user, pass: EMAIL_SERVER.auth.password, diff --git a/website/src/libs/api-v3/encryption.js b/website/src/libs/api-v3/encryption.js index 4e370bb9a8..0f5f9d83dd 100644 --- a/website/src/libs/api-v3/encryption.js +++ b/website/src/libs/api-v3/encryption.js @@ -4,6 +4,7 @@ import { } from 'crypto'; import nconf from 'nconf'; +// TODO check this is secure const algorithm = 'aes-256-ctr'; const SESSION_SECRET = nconf.get('SESSION_SECRET'); diff --git a/website/src/libs/api-v3/logger.js b/website/src/libs/api-v3/logger.js index 4583610d25..3ab20ad685 100644 --- a/website/src/libs/api-v3/logger.js +++ b/website/src/libs/api-v3/logger.js @@ -12,7 +12,9 @@ if (IS_PROD) { // log errors to console too } else { logger - .add(winston.transports.Console); + .add(winston.transports.Console, { + colorize: true, + }); } export default logger;