diff --git a/app/controllers/queryReview.js b/app/controllers/queryReview.js index 1ea8a59..2b08d82 100644 --- a/app/controllers/queryReview.js +++ b/app/controllers/queryReview.js @@ -3,11 +3,12 @@ const { isValidEmail } = require("../helpers/email"); const { notifyForNewSearchRequest } = require("../services/notificationService"); -const { AD_CATEGORY } = require("../common/enums"); +const { AD_CATEGORY, AD_TYPE } = require("../common/enums"); const getQueryReviewData = searchRequest => { const { id, + adType, realEstateType, sizeMin, sizeMax, @@ -22,8 +23,21 @@ const getQueryReviewData = searchRequest => { ? realEstateTypeObject.hasGardenSize : false; + let adTypeTitle = ""; + switch (adType) { + case AD_TYPE.AD_TYPE_SALE.stringId: + adTypeTitle = AD_TYPE.AD_TYPE_SALE.title; + break; + case AD_TYPE.AD_TYPE_RENT.stringId: + adTypeTitle = AD_TYPE.AD_TYPE_RENT.title; + break; + default: + adTypeTitle = "-"; + break; + } + const realEstateTypeTitle = realEstateTypeObject - ? realEstateTypeObject.title + ? `[${adTypeTitle}] ${realEstateTypeObject.title}` : "-"; const locationTitle = "Promjenite lokaciju"; diff --git a/app/controllers/realEstateTypes.js b/app/controllers/realEstateTypes.js index d1a6411..8cc1638 100644 --- a/app/controllers/realEstateTypes.js +++ b/app/controllers/realEstateTypes.js @@ -1,20 +1,45 @@ const { currentSearchRequest } = require("../helpers/url"); const { createSearchRequest } = require("../helpers/db/searchRequest"); -const { AD_CATEGORY } = require("../common/enums"); +const { AD_CATEGORY, AD_TYPE } = require("../common/enums"); + +const getRealEstateTypes = async (req, res) => { + const searchRequest = await currentSearchRequest(req); -const getRealEstateTypes = (req, res) => { const title = "Koju nekretninu tražite?"; + let selectedAdType = AD_TYPE.AD_TYPE_SALE.id; + if ( + searchRequest && + searchRequest.adType && + searchRequest.adType === AD_TYPE.AD_TYPE_RENT.stringId + ) { + selectedAdType = AD_TYPE.AD_TYPE_RENT.id; + } const realEstateTypes = Object.keys(AD_CATEGORY) .map(category => AD_CATEGORY[category]) .filter(category => category.title); - res.render("realEstateType", { realEstateTypes, title }); + res.render("realEstateType", { + selectedAdType, + realEstateTypes, + title, + AD_TYPE + }); }; const postRealEstateTypes = async (req, res) => { const searchRequest = await currentSearchRequest(req); + const adType = parseInt(req.body.adType); + + const adTypeStringIds = { + [AD_TYPE.AD_TYPE_SALE.id]: AD_TYPE.AD_TYPE_SALE.stringId, + [AD_TYPE.AD_TYPE_RENT.id]: AD_TYPE.AD_TYPE_RENT.stringId + }; + + const adTypeStringId = + adTypeStringIds[adType] || AD_TYPE.AD_TYPE_SALE.stringId; + const validRealEstateTypes = Object.keys(AD_CATEGORY).filter( category => !!AD_CATEGORY[category].title ); @@ -30,12 +55,14 @@ const postRealEstateTypes = async (req, res) => { let nextStepUrl = ""; if (searchRequest && searchRequest.id) { nextStepUrl = `/${nextStepPage}/${searchRequest.id}`; + searchRequest.adType = adTypeStringId; searchRequest.realEstateType = selectedRealEstateType; await searchRequest.save(); } else { try { const newSearchRequest = await createSearchRequest({ + adType: adTypeStringId, realEstateType: selectedRealEstateType }); diff --git a/app/views/realEstateType.ejs b/app/views/realEstateType.ejs index 50cdfca..1e92e6d 100644 --- a/app/views/realEstateType.ejs +++ b/app/views/realEstateType.ejs @@ -3,9 +3,17 @@