From dee7c6000ae7195ad9e89b225c044c040d9bd136 Mon Sep 17 00:00:00 2001 From: Naida Vatric Date: Wed, 11 Dec 2019 01:24:18 +0100 Subject: [PATCH] WiP - changed db helpers --- app/helpers/db/realEstate.js | 44 ++++++++++++++++++++++++++++++--- app/helpers/db/searchRequest.js | 39 ++++++++++++++++++++++++++++- 2 files changed, 79 insertions(+), 4 deletions(-) diff --git a/app/helpers/db/realEstate.js b/app/helpers/db/realEstate.js index 0282645..435bdab 100644 --- a/app/helpers/db/realEstate.js +++ b/app/helpers/db/realEstate.js @@ -87,7 +87,22 @@ const findRealEstatesForSearchRequest = async (searchRequest, maxResults) => { sizeMax, adType, realEstateType, - areaToSearch + areaToSearch, + // + gardenSizeMin, + gardenSizeMax, + numberOfRoomsMin, + numberOfRoomsMax, + numberOfFloorsMin, + numberOfFloorsMax, + floorMin, + floorMax, + includeIncompleteAds, + balcony, + elevator, + newBuilding, + accessRoadType + // } = searchRequest; const longitudeColumn = sequelize.col("locationLong"); @@ -115,7 +130,9 @@ const findRealEstatesForSearchRequest = async (searchRequest, maxResults) => { ); const geoSearchQueryPart = sequelize.where(contains, true); - + //Does not work with incomplete data + //issue https://github.com/sequelize/sequelize/issues/11564 + const query = { adType, realEstateType, @@ -127,7 +144,28 @@ const findRealEstatesForSearchRequest = async (searchRequest, maxResults) => { [Op.lte]: sizeMax, [Op.gte]: sizeMin }, - [Op.and]: geoSearchQueryPart + [Op.and]: geoSearchQueryPart, + // + gardenSize: { + [Op.lte]: gardenSizeMax, + [Op.gte]: gardenSizeMin, + }, + numberOfRooms: { + [Op.lte]: numberOfRoomsMax, + [Op.gte]: numberOfRoomsMin, + }, + numberOfFloors: { + [Op.lte]: numberOfFloorsMax, + [Op.gte]: numberOfFloorsMin, + }, + floor: { + [Op.lte]: floorMax, + [Op.gte]: floorMin, + }, + accessRoadType, + balcony, + newBuilding, + elevator }; const order = [["updatedAt", "desc"]]; diff --git a/app/helpers/db/searchRequest.js b/app/helpers/db/searchRequest.js index 6e47b5d..7fa3c55 100644 --- a/app/helpers/db/searchRequest.js +++ b/app/helpers/db/searchRequest.js @@ -43,6 +43,11 @@ const findSearchRequestsForRealEstate = async realEstate => { adType, realEstateType, subscribed: true, + // + accessRoadType, + balcony, + newBuilding, + elevator, [Op.and]: geoSearchQueryPart }; @@ -63,7 +68,39 @@ const findSearchRequestsForRealEstate = async realEstate => { [Op.gte]: area }; } - + // + if (gardenSize) { + query.gardenSizeMin = { + [Op.lte]: gardenSize + }; + query.gardenSizeMax = { + [Op.gte]: gardenSize + }; + } + if (numberOfRooms) { + query.numberOfRoomsMin = { + [Op.lte]: numberOfRooms + }; + query.numberOfRoomsMax = { + [Op.gte]: numberOfRooms + }; + } + if (numberOfFloors) { + query.numberOfFloorsMin = { + [Op.lte]: numberOfFloors + }; + query.numberOfFloorsMax = { + [Op.gte]: numberOfFloors + }; + } + if (floor) { + query.floorMin = { + [Op.lte]: floor + }; + query.floorMax = { + [Op.gte]: floor + }; + } return await db.SearchRequest.findAll({ where: query }); };