diff --git a/config/default.js b/config/default.js index 9563efe..9d426a7 100644 --- a/config/default.js +++ b/config/default.js @@ -34,6 +34,9 @@ module.exports = { API_CONTEXT_PATH: process.env.API_CONTEXT_PATH || '/v5/notifications', TC_API_BASE_URL: process.env.TC_API_BASE_URL || '', + // CloudFront CDN URL. It's used to host and resize images like user avatars. + TC_CDN_URL: process.env.TC_CDN_URL || '', + // Configuration for generating machine to machine auth0 token. // The token will be used for calling another internal API. AUTH0_URL: process.env.AUTH0_URL, diff --git a/connect/constants.js b/connect/constants.js index 3768ac5..4022ef1 100644 --- a/connect/constants.js +++ b/connect/constants.js @@ -1,4 +1,7 @@ module.exports = { + // size for user photos in emails + EMAIL_USER_PHOTO_SIZE: 80, + // periods of time in cron format (node-cron) SCHEDULED_EVENT_PERIOD: { every10minutes: '*/10 * * * *', diff --git a/connect/notificationServices/email.js b/connect/notificationServices/email.js index 3d608fc..fbc1dd2 100644 --- a/connect/notificationServices/email.js +++ b/connect/notificationServices/email.js @@ -13,6 +13,7 @@ const { SCHEDULED_EVENT_PERIOD, SETTINGS_EMAIL_SERVICE_ID, ACTIVE_USER_STATUSES, + EMAIL_USER_PHOTO_SIZE, } = require('../constants'); const { EVENT_BUNDLES } = require('../events-config'); const helpers = require('../helpers'); @@ -236,7 +237,8 @@ function handler(topicName, messageJSON, notification) { projectId: messageJSON.projectId, authorHandle: notification.contents.userHandle, authorFullName: notification.contents.userFullName, - photoURL: notification.contents.photoURL, + photoURL: `${config.TC_CDN_URL}/avatar/${encodeURIComponent(notification.contents.photoURL)}` + + `?size=${EMAIL_USER_PHOTO_SIZE}`, type: notificationType, emailToAffectedUser: notification.contents.userEmail === userEmail, },