From dd8e4d77ed8b90e196bf50c060ecc7f4f5d5579a Mon Sep 17 00:00:00 2001 From: Bilal Catic Date: Mon, 28 Oct 2019 12:34:14 +0100 Subject: [PATCH] improve email regex; improve error handling for query review --- app/controllers/queryReview.js | 34 ++++++++++++++++++++++++++++++++-- app/helpers/email.js | 2 +- app/views/queryReview.ejs | 15 ++++++++++++++- 3 files changed, 47 insertions(+), 4 deletions(-) diff --git a/app/controllers/queryReview.js b/app/controllers/queryReview.js index 19aabc4..1ea8a59 100644 --- a/app/controllers/queryReview.js +++ b/app/controllers/queryReview.js @@ -122,9 +122,39 @@ const postQueryReview = async (req, res) => { searchRequest.email = emailInput; searchRequest.subscribed = true; - await searchRequest.save(); - await notifyForNewSearchRequest(searchRequest); + try { + await searchRequest.save(); + } catch (e) { + console.log("[ERROR] Failed to save search request !", e); + console.log("Search request : ", searchRequest); + const error = + "Greška ! Nismo uspjeli kreirati zahtjev za Vašu pretragu. Molimo pokuštajte ponovo"; + res.render("queryReview", { + error, + title, + queryReviewData, + email: "" + }); + return; + } + + try { + await notifyForNewSearchRequest(searchRequest); + } catch (e) { + console.log("[ERROR] Failed to send initial welcome email", e); + console.log("Search request : ", searchRequest); + + const error = + "Greška ! Nismo uspjeli poslati email na Vašu adresu, pokušajte sa drugom email adresom"; + res.render("queryReview", { + error, + title, + queryReviewData, + email: "" + }); + return; + } res.redirect(nextStep); }; diff --git a/app/helpers/email.js b/app/helpers/email.js index 730f2a6..c0217cc 100644 --- a/app/helpers/email.js +++ b/app/helpers/email.js @@ -1,5 +1,5 @@ const isValidEmail = email => { - const simpleEmailRegex = /^.+@.+\..+$/; + const simpleEmailRegex = /^(([^<>()\[\]\\.,;:\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 email && email.length < 250 && simpleEmailRegex.test(email); }; diff --git a/app/views/queryReview.ejs b/app/views/queryReview.ejs index d80640e..b697e66 100644 --- a/app/views/queryReview.ejs +++ b/app/views/queryReview.ejs @@ -48,7 +48,20 @@