WiP Changed welcome and input form for ad type
This commit is contained in:
95
app/controllers/publishRealEstateTypes.js
Normal file
95
app/controllers/publishRealEstateTypes.js
Normal file
@@ -0,0 +1,95 @@
|
||||
const { currentRealEstate } = require("../helpers/url");
|
||||
const { createRealEstate } = require("../helpers/db/realEstate");
|
||||
const { createKiviOriginal } = require("../helpers/db/kiviOriginal");
|
||||
|
||||
const { AD_CATEGORY, AD_TYPE, AD_AGENCY } = require("../common/enums");
|
||||
|
||||
const getPublishTypes = async (req, res) => {
|
||||
const realEstate = await currentRealEstate(req);
|
||||
|
||||
const title = "Koju nekretninu nudite?";
|
||||
let selectedAdType = AD_TYPE.AD_TYPE_SALE.id;
|
||||
const labelAdType = ["Prodaj", "Iznajmi"];
|
||||
|
||||
if (
|
||||
realEstate &&
|
||||
realEstate.adType &&
|
||||
realEstate.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", {
|
||||
selectedAdType,
|
||||
labelAdType,
|
||||
realEstateTypes,
|
||||
title,
|
||||
AD_TYPE
|
||||
});
|
||||
};
|
||||
|
||||
const postPublishTypes = async (req, res) => {
|
||||
const realEstate = await currentRealEstate(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
|
||||
);
|
||||
|
||||
const selectedRealEstateType = req.body.realEstateType || null;
|
||||
if (validRealEstateTypes.indexOf(selectedRealEstateType) === -1) {
|
||||
res.render("notFound", { title: " " });
|
||||
return;
|
||||
}
|
||||
// Sta je nextStepPage - treba napraviti !!!!
|
||||
/////
|
||||
/////
|
||||
const nextStepPage = req.query.nextStep || "/lokacija";
|
||||
|
||||
let nextStepUrl = "";
|
||||
if (realEstate && realEstate.id) {
|
||||
nextStepUrl = `/${nextStepPage}/${realEstate.id}`;
|
||||
realEstate.adType = adTypeStringId;
|
||||
realEstate.realEstateType = selectedRealEstateType;
|
||||
|
||||
await realEstate.save();
|
||||
} else {
|
||||
try {
|
||||
const newKiviOriginal = await createKiviOriginal({
|
||||
email: ""
|
||||
});
|
||||
|
||||
const newRealEstate = await createRealEstate({
|
||||
adType: adTypeStringId,
|
||||
realEstateType: selectedRealEstateType,
|
||||
url: "http://localhost:5000/",
|
||||
originAgencyName: AD_AGENCY.KIVI,
|
||||
agencyObjectId: newKiviOriginal.kiviAdId
|
||||
});
|
||||
|
||||
//Da li ovaj id ili kivioriginal id
|
||||
nextStepUrl = `/${nextStepPage}/${newRealEstate.id}`;
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
nextStepUrl = `/`;
|
||||
}
|
||||
}
|
||||
res.redirect(nextStepUrl);
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
getPublishTypes,
|
||||
postPublishTypes
|
||||
};
|
||||
@@ -8,6 +8,7 @@ const getRealEstateTypes = async (req, res) => {
|
||||
|
||||
const title = "Koju nekretninu tražite?";
|
||||
let selectedAdType = AD_TYPE.AD_TYPE_SALE.id;
|
||||
const labelAdType = [AD_TYPE.AD_TYPE_SALE.title, AD_TYPE.AD_TYPE_RENT.title];
|
||||
if (
|
||||
searchRequest &&
|
||||
searchRequest.adType &&
|
||||
@@ -21,6 +22,7 @@ const getRealEstateTypes = async (req, res) => {
|
||||
|
||||
res.render("realEstateType", {
|
||||
selectedAdType,
|
||||
labelAdType,
|
||||
realEstateTypes,
|
||||
title,
|
||||
AD_TYPE
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
const { createSearchRequest } = require("../helpers/db/searchRequest");
|
||||
|
||||
const { AD_TYPE, AD_CATEGORY } = require("../common/enums");
|
||||
const { createRealEstate } = require("../helpers/db/realEstate");
|
||||
const { createKiviOriginal } = require("../helpers/db/kiviOriginal");
|
||||
const { AD_TYPE, AD_CATEGORY, AD_AGENCY } = require("../common/enums");
|
||||
|
||||
const getWelcome = (req, res) => {
|
||||
res.render("welcome", {
|
||||
@@ -11,7 +12,54 @@ const getWelcome = (req, res) => {
|
||||
|
||||
const postWelcome = async (req, res) => {
|
||||
const adType = parseInt(req.body.adType);
|
||||
const publishAdType = parseInt(req.body.publishAdType);
|
||||
|
||||
let nextStepUrl = "";
|
||||
|
||||
if (adType) {
|
||||
const adTypeStringId = getAdTypeString(adType);
|
||||
try {
|
||||
const newSearchRequest = await createSearchRequest({
|
||||
adType: adTypeStringId,
|
||||
realEstateType: AD_CATEGORY.FLAT.id
|
||||
});
|
||||
|
||||
nextStepUrl = `/vrstanekretnine/${newSearchRequest.id}`;
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
nextStepUrl = `/`;
|
||||
}
|
||||
} else if (publishAdType) {
|
||||
const adTypeStringId = getAdTypeString(publishAdType);
|
||||
|
||||
try {
|
||||
//Firt we create new Kivi Ad Original object in db then new Real Estate
|
||||
//Problem with id-s
|
||||
const newKiviOriginal = await createKiviOriginal({
|
||||
email: ""
|
||||
});
|
||||
|
||||
const newRealEstate = await createRealEstate({
|
||||
adType: adTypeStringId,
|
||||
realEstateType: AD_CATEGORY.FLAT.id,
|
||||
//Temp variables because of the not null constraints
|
||||
url: "http://localhost:5000/",
|
||||
originAgencyName: AD_AGENCY.KIVI,
|
||||
agencyObjectId: newKiviOriginal.kiviAdId
|
||||
});
|
||||
|
||||
nextStepUrl = `/objavinekretninu/${newRealEstate.id}`;
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
nextStepUrl = `/`;
|
||||
}
|
||||
}
|
||||
|
||||
res.redirect(nextStepUrl);
|
||||
};
|
||||
|
||||
//--- Helper function
|
||||
const getAdTypeString = 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
|
||||
@@ -20,20 +68,7 @@ const postWelcome = async (req, res) => {
|
||||
const adTypeStringId =
|
||||
adTypeStringIds[adType] || AD_TYPE.AD_TYPE_SALE.stringId;
|
||||
|
||||
let nextStepUrl = "";
|
||||
try {
|
||||
const newSearchRequest = await createSearchRequest({
|
||||
adType: adTypeStringId,
|
||||
realEstateType: AD_CATEGORY.FLAT.id
|
||||
});
|
||||
|
||||
nextStepUrl = `/vrstanekretnine/${newSearchRequest.id}`;
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
nextStepUrl = `/`;
|
||||
}
|
||||
|
||||
res.redirect(nextStepUrl);
|
||||
return adTypeStringId;
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
|
||||
Reference in New Issue
Block a user