diff --git a/app/controllers/grad.js b/app/controllers/grad.js index e69de29..74f9226 100644 --- a/app/controllers/grad.js +++ b/app/controllers/grad.js @@ -0,0 +1,41 @@ +const db = require('../models/index'); +const { currentRERequest } = require('../helpers/url'); + +const gradovi = [ + {"ime":" Sarajevo","id":"sarajevo"}, + {"ime":" Unsko-sanski","id":"unskosanski"}, + {"ime":" Posavski","id":"posavski"}, + {"ime":" Tuzlanski","id":"tuzlanski"}, + {"ime":" Zeničko-dobojski","id":"zenickodobojski"}, + {"ime":" Bosansko-podrinjski","id":"bosanskopodrinjski"}, + {"ime":" Srednjobosanski","id":"srednjobosanski"}, + {"ime":" Hercegovačko-neretvanski","id":"hercegovackoneretvanski"}, + {"ime":" Zapadno-hercegovački","id":"zapadnohercegovacki"}, + {"ime":" Livanjski","id":"livanjski"}, + {"ime":" Banjalučka","id":"banjalučka"}, + {"ime":" Dobojsko-Bijeljinska","id":"dobojskobijeljinska"}, + {"ime":" Sarajevsko-Zvornička","id":"sarajevskozvornicka"}, + {"ime":" Trebinjsko-Fočanska","id":"trebinjskofocanska"}, + {"ime":"Distrikt Brčko","id":"distriktbrcko"}, +]; + + +const getGrad = (req,res) => { + const nextStep = req.query.nextStep || '/'; + res.render('grad', { + nextStep, + gradovi + }); +} + +const postGrad = async (req, res) => { + let request = await currentRERequest(req); + request.city = req.body.grad; + await request.save(); + res.send("Result is " + JSON.stringify(request)); +} + +module.exports = { + getGrad, + postGrad +}; diff --git a/app/controllers/vrsta_nekretnine.js b/app/controllers/vrsta_nekretnine.js index 7b26f43..1bc6ab8 100644 --- a/app/controllers/vrsta_nekretnine.js +++ b/app/controllers/vrsta_nekretnine.js @@ -8,17 +8,21 @@ const vrsteNekretnina = [ const getVrstaNekretnine = (req,res) => { + const nextStep = req.query.nextStep; res.render('vrsta_nekretnine', { - nextStep: '/', + nextStep, vrste: vrsteNekretnina }); } const postVrstaNekretnine = (req, res) => { + let nextStep = req.query.nextStep; + db.RealEstateRequest.create({ realEstateType: req.body.vrsta }).then( (result) => { - res.send("Result is " + JSON.stringify(result)); + nextStep = nextStep || `/grad/${result.uniqueId}`; + res.redirect(nextStep); }).catch( (e) => { res.send(e); }); diff --git a/app/helpers/url.js b/app/helpers/url.js new file mode 100644 index 0000000..7cde84a --- /dev/null +++ b/app/helpers/url.js @@ -0,0 +1,14 @@ +const db = require('../models/index'); + +const currentRERequest = async (req) => { + const uniqueId = req.params['request_id']; + if(!uniqueId) return null; + + const request = await db.RealEstateRequest.findOne({ where: {uniqueId} }); + console.log("Request ", request); + return request; +} + +module.exports = { + currentRERequest +} diff --git a/app/migrations/20190427043621-add_city_to_real_estate_request.js b/app/migrations/20190427043621-add_city_to_real_estate_request.js new file mode 100644 index 0000000..be6f6a8 --- /dev/null +++ b/app/migrations/20190427043621-add_city_to_real_estate_request.js @@ -0,0 +1,18 @@ +'use strict'; + +module.exports = { + up: (queryInterface, Sequelize) => { + return queryInterface.addColumn( + 'RealEstateRequests', + 'city', + Sequelize.STRING + ); + }, + + down: (queryInterface, Sequelize) => { + return queryInterface.removeColumn( + 'RealEstateRequests', + 'city' + ); + } +}; diff --git a/app/models/realestaterequest.js b/app/models/realestaterequest.js index 1db1612..24c3660 100644 --- a/app/models/realestaterequest.js +++ b/app/models/realestaterequest.js @@ -10,7 +10,8 @@ module.exports = (sequelize, DataTypes) => { type: DataTypes.ENUM, values: ['kuca','stan','vikendica','plac','poslovni_prostor','apartman','garaza'] }, - email: DataTypes.STRING + email: DataTypes.STRING, + city: DataTypes.STRING, }, {}); RealEstateRequest.associate = function(models) { // associations can be defined here diff --git a/app/views/grad.ejs b/app/views/grad.ejs new file mode 100644 index 0000000..ee28d77 --- /dev/null +++ b/app/views/grad.ejs @@ -0,0 +1,25 @@ +
+

U kojoj regiji tražite nekretninu?

+
+ +
+
+ + +
+
+ + + diff --git a/index.js b/index.js index bd98e59..a6d5443 100644 --- a/index.js +++ b/index.js @@ -1,6 +1,6 @@ const dobrodosli = require('./app/controllers/dobrodosli').getDobrodosli; -const getVrstaNekretnine = require('./app/controllers/vrsta_nekretnine').getVrstaNekretnine; -const postVrstaNekretnine = require('./app/controllers/vrsta_nekretnine').postVrstaNekretnine; +const { getVrstaNekretnine, postVrstaNekretnine} = require('./app/controllers/vrsta_nekretnine'); +const { getGrad, postGrad } = require('./app/controllers/grad'); let express = require("express"); const path = require("path"); @@ -108,8 +108,15 @@ app.post("/api/payforalert", function(request, response) { }); app.get('/', dobrodosli); +app.get('/vrstanekretnine/:request_id', getVrstaNekretnine); app.get('/vrstanekretnine', getVrstaNekretnine); + +app.post('/vrstanekretnine/:request_id', postVrstaNekretnine); app.post('/vrstanekretnine', postVrstaNekretnine); + +app.get('/grad/:request_id', getGrad); +app.post('/grad/:request_id', postGrad); + app.use('/assets', express.static('./app/public')) app.listen(port, () => console.log(`Example app listening on port ${port}!`));