WiP - changed db helpers

This commit is contained in:
Naida Vatric
2019-12-11 01:24:18 +01:00
parent 6f729b4135
commit dee7c6000a
2 changed files with 79 additions and 4 deletions

View File

@@ -87,7 +87,22 @@ const findRealEstatesForSearchRequest = async (searchRequest, maxResults) => {
sizeMax, sizeMax,
adType, adType,
realEstateType, realEstateType,
areaToSearch areaToSearch,
//
gardenSizeMin,
gardenSizeMax,
numberOfRoomsMin,
numberOfRoomsMax,
numberOfFloorsMin,
numberOfFloorsMax,
floorMin,
floorMax,
includeIncompleteAds,
balcony,
elevator,
newBuilding,
accessRoadType
//
} = searchRequest; } = searchRequest;
const longitudeColumn = sequelize.col("locationLong"); const longitudeColumn = sequelize.col("locationLong");
@@ -115,7 +130,9 @@ const findRealEstatesForSearchRequest = async (searchRequest, maxResults) => {
); );
const geoSearchQueryPart = sequelize.where(contains, true); const geoSearchQueryPart = sequelize.where(contains, true);
//Does not work with incomplete data
//issue https://github.com/sequelize/sequelize/issues/11564
const query = { const query = {
adType, adType,
realEstateType, realEstateType,
@@ -127,7 +144,28 @@ const findRealEstatesForSearchRequest = async (searchRequest, maxResults) => {
[Op.lte]: sizeMax, [Op.lte]: sizeMax,
[Op.gte]: sizeMin [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"]]; const order = [["updatedAt", "desc"]];

View File

@@ -43,6 +43,11 @@ const findSearchRequestsForRealEstate = async realEstate => {
adType, adType,
realEstateType, realEstateType,
subscribed: true, subscribed: true,
//
accessRoadType,
balcony,
newBuilding,
elevator,
[Op.and]: geoSearchQueryPart [Op.and]: geoSearchQueryPart
}; };
@@ -63,7 +68,39 @@ const findSearchRequestsForRealEstate = async realEstate => {
[Op.gte]: area [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 }); return await db.SearchRequest.findAll({ where: query });
}; };