diff --git a/src/services/registration.services.js b/src/services/registration.services.js index b47e301..2db643b 100644 --- a/src/services/registration.services.js +++ b/src/services/registration.services.js @@ -7,6 +7,8 @@ const domains = require('../configs/domains.configs') async function createRegKey(body) { log.out(`registerServices.createRegKey: Incoming request`, "INFO") + if (!clean.checkEmailValid(body.mail)) {return {status: 400, message:"address format invalid"} + } const domain = await clean.getDomainFromEmail(body.email) // The function should validate the email log.out(`registerServices: New registration request from domain: ${domain}`, "info") if (domains.includes(domain)) { diff --git a/src/utils/sanitizer.utils.js b/src/utils/sanitizer.utils.js index e0e6e7e..f8282a7 100644 --- a/src/utils/sanitizer.utils.js +++ b/src/utils/sanitizer.utils.js @@ -43,9 +43,18 @@ async function getDomainFromEmail(mail) { // Needs testing return split[1] } +async function checkEmailValid(mail) { + const regex = /^(([^<>()[\]\.,;:\s@\"]+(\.[^<>()[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i; + const result = mail.match(regex) + ? true + : false; log.out(`sanitizerUtils.checkEmailValid: Invalid email format used: ${mail}`,"warn") + return result; +} + module.exports = { cleanApiEndpointTxt, cleanApiEndpointNum, cleanNrcc, - getDomainFromEmail + getDomainFromEmail, + checkEmailValid } \ No newline at end of file