diff --git a/backend/helpers/email.js b/backend/helpers/email.js index c2d6965..67d11aa 100644 --- a/backend/helpers/email.js +++ b/backend/helpers/email.js @@ -1,7 +1,7 @@ const nodemailer = require ('nodemailer'); module.exports = { - validateEmailFromAlexaResponse: function (email) { + transformEmailFromAlexaResponse: function (email) { //email from alexa response will contain words instead of symbols, like : //at = @ //underscore = _ @@ -14,10 +14,13 @@ module.exports = { .replace (/dash/gi, '-') .replace (/dot/gi, '.'); - //Validate here with some email validation regex + return transformedEmail; + }, - //return true if email is valid - return true; + isEmailValid : function(email){ + let validEmailRegex = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; + + return validEmailRegex.test(email); }, sendEmal: function (name, fromEmail, message, toEmail) { diff --git a/backend/models/alexa.js b/backend/models/alexa.js index 271eb77..3ba0c56 100644 --- a/backend/models/alexa.js +++ b/backend/models/alexa.js @@ -88,8 +88,9 @@ module.exports = { repromptSpeech ); } else if (!intent.slots.Message.value) { + intent.slots.Email.value = emailHelper.transformEmailFromAlexaResponse(intent.slots.Message.value); if ( - !emailHelper.validateEmailFromAlexaResponse ( + !emailHelper.isEmailValid ( intent.slots.Email.value ) ) {