Skip and prevent saving garden size if not needed
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
const { currentRERequest } = require('../helpers/url');
|
||||
const { gardenSizes } = require('../helpers/enums');
|
||||
const { gardenSizes, getRealEstateTypeEnum } = require('../helpers/enums');
|
||||
|
||||
const getGardenSize = (req,res) => {
|
||||
res.render('gardenSize', { gardenSizes });
|
||||
@@ -11,8 +11,11 @@ const postGardenSize = async (req, res) => {
|
||||
const nextStepPage = req.query.nextStep || 'cijena';
|
||||
const nextStepUrl = `/${nextStepPage}/${request.uniqueId}`;
|
||||
|
||||
request.gardenSize = req.body.gardensize;
|
||||
await request.save();
|
||||
const realEstateType = getRealEstateTypeEnum(request.realEstateType);
|
||||
if (realEstateType && realEstateType.hasGardenSize) {
|
||||
request.gardenSize = req.body.gardensize;
|
||||
await request.save();
|
||||
}
|
||||
|
||||
res.redirect(nextStepUrl);
|
||||
};
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
const { currentRERequest } = require('../helpers/url');
|
||||
const { getRegionName, getMunicipalityName } = require('../helpers/codes');
|
||||
const { realEstateTypes, sizes, gardenSizes, prices, getEnumTypeTitle } = require('../helpers/enums');
|
||||
const { realEstateTypes, sizes, gardenSizes, prices, getEnumTypeTitle, getRealEstateTypeEnum } = require('../helpers/enums');
|
||||
|
||||
const getQueryReview = async (req,res) => {
|
||||
const request = await currentRERequest(req);
|
||||
@@ -12,6 +12,9 @@ const getQueryReview = async (req,res) => {
|
||||
|
||||
const { realEstateType, region, municipality, size, gardenSize, price } = request.dataValues;
|
||||
|
||||
const realEstateTypeObject = getRealEstateTypeEnum(realEstateType);
|
||||
const enableGardenSizeEdit = realEstateTypeObject ? realEstateTypeObject.hasGardenSize : false;
|
||||
|
||||
const realEstateTypeTitle = realEstateType ? getEnumTypeTitle(realEstateTypes, realEstateType) : null;
|
||||
const regionName = region ? getRegionName(region) : null;
|
||||
const municipalityName = (region && municipality) ? getMunicipalityName(region, municipality) : null;
|
||||
@@ -45,7 +48,7 @@ const getQueryReview = async (req,res) => {
|
||||
{
|
||||
id: 'gardenSize',
|
||||
title: gardenSizeTitle,
|
||||
url: `/okucnica/${uniqueId}?nextStep=pregled`,
|
||||
url: enableGardenSizeEdit ? `/okucnica/${uniqueId}?nextStep=pregled` : '',
|
||||
},
|
||||
{
|
||||
id: 'price',
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
const db = require('../models/index');
|
||||
|
||||
const { currentRERequest } = require('../helpers/url');
|
||||
const { realEstateTypes } = require('../helpers/enums');
|
||||
const { realEstateTypes, getRealEstateTypeEnum } = require('../helpers/enums');
|
||||
|
||||
|
||||
const getRealEstateTypes = (req,res) => {
|
||||
@@ -16,6 +16,9 @@ const postRealEstateTypes = async (req, res) => {
|
||||
if (request && request.uniqueId) {
|
||||
const nextStepUrl = `/${nextStepPage}/${request.uniqueId}`;
|
||||
request.realEstateType = req.body.realestatetype;
|
||||
if (!getRealEstateTypeEnum(request.realEstateType).hasGardenSize){
|
||||
request.gardenSize = null;
|
||||
}
|
||||
await request.save();
|
||||
|
||||
res.redirect(nextStepUrl)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
const { currentRERequest } = require('../helpers/url');
|
||||
const { sizes } = require('../helpers/enums');
|
||||
const { sizes, getRealEstateTypeEnum } = require('../helpers/enums');
|
||||
|
||||
const getSize = (req,res) => {
|
||||
res.render('size', { sizes });
|
||||
@@ -8,7 +8,10 @@ const getSize = (req,res) => {
|
||||
const postSize = async (req, res) => {
|
||||
const request = await currentRERequest(req);
|
||||
|
||||
const nextStepPage = req.query.nextStep || 'okucnica';
|
||||
const realEstateType = getRealEstateTypeEnum(request.realEstateType);
|
||||
|
||||
const nextStep = realEstateType.hasGardenSize ? 'okucnica' : 'cijena';
|
||||
const nextStepPage = req.query.nextStep || nextStep;
|
||||
const nextStepUrl = `/${nextStepPage}/${request.uniqueId}`;
|
||||
|
||||
request.size = req.body.size;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
const realEstateTypes = [
|
||||
{ title: "Kuća", id: "kuca" },
|
||||
{ title: "Stan", id: "stan" },
|
||||
{ title: "Vikendica", id: "vikendica" }
|
||||
{ title: "Kuća", id: "kuca", hasGardenSize: true },
|
||||
{ title: "Stan", id: "stan", hasGardenSize: false },
|
||||
{ title: "Vikendica", id: "vikendica", hasGardenSize: true }
|
||||
];
|
||||
|
||||
const sizes = [
|
||||
@@ -31,8 +31,16 @@ const prices = [
|
||||
{ title: "preko 250 000 KM", id: "moreThan250kKM" }
|
||||
];
|
||||
|
||||
const getEnumObject = (enumType, enumId) => {
|
||||
return enumType.find(enumValue => enumValue.id === enumId);
|
||||
};
|
||||
|
||||
const getRealEstateTypeEnum = (enumId) => {
|
||||
return getEnumObject(realEstateTypes, enumId) || null;
|
||||
}
|
||||
|
||||
const getEnumTypeTitle = (enumType, enumId) => {
|
||||
const enumObject = enumType.find(enumValue => enumValue.id === enumId);
|
||||
const enumObject = getEnumObject(enumType, enumId);
|
||||
if (!enumObject){
|
||||
return null;
|
||||
}
|
||||
@@ -44,5 +52,6 @@ module.exports = {
|
||||
sizes,
|
||||
gardenSizes,
|
||||
prices,
|
||||
getRealEstateTypeEnum,
|
||||
getEnumTypeTitle,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user