WiP - changed db helpers
This commit is contained in:
@@ -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"]];
|
||||||
|
|||||||
@@ -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 });
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user