const { currentSearchRequest } = require("../helpers/url"); const { createSearchRequest } = require("../helpers/db/searchRequest"); const { AD_CATEGORY } = require("../common/enums"); const getRealEstateTypes = (req, res) => { const title = "Koju nekretninu tražite?"; const realEstateTypes = Object.keys(AD_CATEGORY) .map(category => AD_CATEGORY[category]) .filter(category => category.title); res.render("realEstateType", { realEstateTypes, title }); }; const postRealEstateTypes = async (req, res) => { const searchRequest = await currentSearchRequest(req); const validRealEstateTypes = Object.keys(AD_CATEGORY).filter( category => !!AD_CATEGORY[category].title ); const selectedRealEstateType = req.body.realEstateType || null; if (validRealEstateTypes.indexOf(selectedRealEstateType) === -1) { res.render("notFound", { title: " " }); return; } const nextStepPage = req.query.nextStep || "lokacija"; let nextStepUrl = ""; if (searchRequest && searchRequest.id) { nextStepUrl = `/${nextStepPage}/${searchRequest.id}`; searchRequest.realEstateType = selectedRealEstateType; await searchRequest.save(); } else { try { const newSearchRequest = await createSearchRequest({ realEstateType: selectedRealEstateType }); nextStepUrl = `/${nextStepPage}/${newSearchRequest.id}`; } catch (error) { console.log(error); nextStepUrl = `/`; } } res.redirect(nextStepUrl); }; module.exports = { getRealEstateTypes, postRealEstateTypes };