diff --git a/app/controllers/queryReview.js b/app/controllers/queryReview.js index 6ea8bd8..04dfe4f 100644 --- a/app/controllers/queryReview.js +++ b/app/controllers/queryReview.js @@ -1,15 +1,11 @@ const { currentSearchRequest } = require("../helpers/url"); +const { isValidEmail } = require("../helpers/email"); +const { + notifyForNewSearchRequest +} = require("../services/notificationService"); const { AD_CATEGORY } = require("../common/enums"); -const getQueryReview = async (req, res) => { - const title = "Da li je ovo to što ste tražili ?"; - const searchRequest = await currentSearchRequest(req); - const nextStep = req.query.nextStep; - - if (!searchRequest || !searchRequest.dataValues) { - return null; - } - +const getQueryReviewData = searchRequest => { const { id, realEstateType, @@ -39,7 +35,7 @@ const getQueryReview = async (req, res) => { const priceTitle = priceMin && priceMax ? `${priceMin} - ${priceMax} KM` : "-"; - const queryReviewData = [ + return [ { id: "realEstateType", title: realEstateTypeTitle, @@ -66,17 +62,66 @@ const getQueryReview = async (req, res) => { url: `/cijena/${id}?nextStep=pregled` } ]; +}; + +const getQueryReview = async (req, res) => { + const searchRequest = await currentSearchRequest(req); + + if (!searchRequest || !searchRequest.dataValues) { + return null; + } + + const title = "Da li je ovo to što ste tražili ?"; + const nextStep = req.query.nextStep; + const error = req.query.error; + const queryReviewData = getQueryReviewData(searchRequest); res.render("queryReview", { nextStep, queryReviewData, - title + title, + error }); }; const postQueryReview = async (req, res) => { const searchRequest = await currentSearchRequest(req); - const nextStep = req.query.nextStep || `/posalji/${searchRequest.id}`; + + if (!searchRequest || !searchRequest.dataValues) { + return null; + } + + const nextStep = req.query.nextStep || "/ponovo"; + const emailInput = req.body.email; + const emailConfirmInput = req.body.confirmEmail; + const title = "Da li je ovo to što ste tražili ?"; + const queryReviewData = getQueryReviewData(searchRequest); + + if (emailInput !== emailConfirmInput) { + const error = "Greška ! Unešeni emailovi nisu isti"; + res.render("queryReview", { + error, + title, + queryReviewData + }); + return; + } + + if (!isValidEmail(emailInput)) { + const error = "Greška ! Unesite validan email"; + res.render("queryReview", { + error, + title, + queryReviewData + }); + return; + } + + searchRequest.email = emailInput; + searchRequest.subscribed = true; + await searchRequest.save(); + + await notifyForNewSearchRequest(searchRequest); res.redirect(nextStep); }; diff --git a/app/controllers/querySubmit.js b/app/controllers/querySubmit.js deleted file mode 100644 index 6d623f1..0000000 --- a/app/controllers/querySubmit.js +++ /dev/null @@ -1,58 +0,0 @@ -const { currentSearchRequest } = require("../helpers/url"); -const { isValidEmail } = require("../helpers/email"); -const { - notifyForNewSearchRequest -} = require("../services/notificationService"); - -const getQuerySubmit = async (req, res) => { - const title = "Upišite vaš e-mail"; - const nextStep = req.query.nextStep; - const error = req.query.error; - - res.render("querySubmit", { - nextStep, - error, - title - }); -}; - -const postQuerySubmit = async (req, res) => { - const searchRequest = await currentSearchRequest(req); - const nextStep = req.query.nextStep || "/ponovo"; - - const emailInput = req.body.email; - const emailConfirmInput = req.body.confirm; - const title = "Upišite vaš e-mail"; - let error = "Greška ! Unesite validan email"; - - if (emailInput !== emailConfirmInput) { - error = "Greška ! Unešeni emailovi nisu isti"; - res.render("querySubmit", { - error, - title - }); - return; - } - - if (!isValidEmail(emailInput)) { - error = "Greška ! Unesite validan email"; - res.render("querySubmit", { - error, - title - }); - return; - } - - searchRequest.email = emailInput; - searchRequest.subscribed = true; - await searchRequest.save(); - - await notifyForNewSearchRequest(searchRequest); - - res.redirect(nextStep); -}; - -module.exports = { - getQuerySubmit, - postQuerySubmit -}; diff --git a/app/routes/index.js b/app/routes/index.js index 6940323..ef1fea9 100644 --- a/app/routes/index.js +++ b/app/routes/index.js @@ -14,10 +14,6 @@ const { getQueryReview, postQueryReview } = require("../controllers/queryReview"); -const { - getQuerySubmit, - postQuerySubmit -} = require("../controllers/querySubmit"); const { getGoAgain } = require("../controllers/goAgain"); const { getLocation, postLocation } = require("../controllers/location"); const { getUnsubscribe } = require("../controllers/unsubscribe"); @@ -48,9 +44,6 @@ router.post("/cijena/:searchRequestId", postPrice); router.get("/pregled/:searchRequestId", getQueryReview); router.post("/pregled/:searchRequestId", postQueryReview); -router.get("/posalji/:searchRequestId", getQuerySubmit); -router.post("/posalji/:searchRequestId", postQuerySubmit); - router.get("/odjava/:searchRequestId", getUnsubscribe); router.get("/ponovo", getGoAgain); diff --git a/app/views/queryReview.ejs b/app/views/queryReview.ejs index 87f99a8..1e914d6 100644 --- a/app/views/queryReview.ejs +++ b/app/views/queryReview.ejs @@ -2,26 +2,50 @@ <% include partials/navBar %>
-
- -
-
- -
+ + +
+
+ +
+
+ +
+
+
<%= error %>
+
+
+ +
+
+

* U svakom trenutku možete prekinuti slanje objava kroz link u e-mailu

+
+
+ +
+ +
\ No newline at end of file