Changed queries logic again.

This commit is contained in:
Naida Vatric
2020-02-18 15:04:26 +01:00
parent bd33a6b80e
commit 7302edceec

View File

@@ -35,8 +35,8 @@ const findSearchRequestsForRealEstate = async realEstate => {
floor floor
} = realEstate; } = realEstate;
// //Debugging log
console.log("New realestate:", realEstate); console.log("New realestate:", realEstate.dataValues);
if (!locationLat || !locationLong) { if (!locationLat || !locationLong) {
return []; return [];
@@ -159,33 +159,11 @@ const findSearchRequestsForRealEstate = async realEstate => {
}; };
} else { } else {
// If real estate dont have defined number of rooms ex. null // If real estate dont have defined number of rooms ex. null
//It returns requests that didn't choose number of rooms - also null //It returns all search requests except for ones that dont want incpomlete ads
//Or ones that picked some values but also picked to includeIncomplete ads (or default)
numberOfRoomsQuery = { numberOfRoomsQuery = {
[Op.or]: [ includeIncompleteAds: {
{ [Op.ne]: false
[Op.and]: [ }
{
numberOfRoomsMin: {
[Op.is]: null
}
},
{
numberOfRoomsMax: {
[Op.is]: null
}
}
]
},
{
includeIncompleteAds: {
[Op.or]: {
[Op.eq]: true,
[Op.is]: null
}
}
}
]
}; };
} }
} }
@@ -215,30 +193,9 @@ const findSearchRequestsForRealEstate = async realEstate => {
}; };
} else { } else {
numberOfFloorsQuery = { numberOfFloorsQuery = {
[Op.or]: [ includeIncompleteAds: {
{ [Op.ne]: false
[Op.and]: [ }
{
numberOfFloorsMin: {
[Op.is]: null
}
},
{
numberOfFloorsMax: {
[Op.is]: null
}
}
]
},
{
includeIncompleteAds: {
[Op.or]: {
[Op.eq]: true,
[Op.is]: null
}
}
}
]
}; };
} }
} }
@@ -267,30 +224,9 @@ const findSearchRequestsForRealEstate = async realEstate => {
}; };
} else { } else {
floorQuery = { floorQuery = {
[Op.or]: [ includeIncompleteAds: {
{ [Op.ne]: false
[Op.and]: [ }
{
floorMin: {
[Op.is]: null
}
},
{
floorMax: {
[Op.is]: null
}
}
]
},
{
includeIncompleteAds: {
[Op.or]: {
[Op.eq]: true,
[Op.is]: null
}
}
}
]
}; };
} }
} }
@@ -299,7 +235,7 @@ const findSearchRequestsForRealEstate = async realEstate => {
//If user dont check checkbox for ex. elevator it does not mean he only wants no elevator //If user dont check checkbox for ex. elevator it does not mean he only wants no elevator
//If real estate characteristic =true find all req, one that wants charachertistic or dont care - dont need query //If real estate characteristic =true find all req, one that wants charachertistic or dont care - dont need query
//If real estate characteristic = false, find all req exept for ones that wants characteristic to be true //If real estate characteristic = false, find all req exept for ones that wants characteristic to be true
//If real estate characteristic = null, dont know if true or false, find req that dont care or want char and want incomplete ads //If real estate characteristic = null, dont know if true or false, find all req except ones that dont want incomplete ads
let balconyQuery = {}; let balconyQuery = {};
if (realEstateTypeObject.hasBalconyProp && balcony !== true) { if (realEstateTypeObject.hasBalconyProp && balcony !== true) {
if (balcony === false) { if (balcony === false) {
@@ -310,30 +246,9 @@ const findSearchRequestsForRealEstate = async realEstate => {
}; };
} else if (balcony === null) { } else if (balcony === null) {
balconyQuery = { balconyQuery = {
[Op.or]: [ includeIncompleteAds: {
{ [Op.ne]: false
balcony: { }
[Op.ne]: true
}
},
{
[Op.and]: [
{
balcony: {
[Op.eq]: true
}
},
{
includeIncompleteAds: {
[Op.or]: {
[Op.eq]: true,
[Op.is]: null
}
}
}
]
}
]
}; };
} }
} }
@@ -347,30 +262,9 @@ const findSearchRequestsForRealEstate = async realEstate => {
}; };
} else if (newBuilding === null) { } else if (newBuilding === null) {
newBuildingQuery = { newBuildingQuery = {
[Op.or]: [ includeIncompleteAds: {
{ [Op.ne]: false
newBuilding: { }
[Op.ne]: true
}
},
{
[Op.and]: [
{
newBuilding: {
[Op.eq]: true
}
},
{
includeIncompleteAds: {
[Op.or]: {
[Op.eq]: true,
[Op.is]: null
}
}
}
]
}
]
}; };
} }
} }
@@ -384,33 +278,13 @@ const findSearchRequestsForRealEstate = async realEstate => {
}; };
} else if (elevator === null) { } else if (elevator === null) {
elevatorQuery = { elevatorQuery = {
[Op.or]: [ includeIncompleteAds: {
{ [Op.ne]: false
elevator: { }
[Op.ne]: true
}
},
{
[Op.and]: [
{
elevator: {
[Op.eq]: true
}
},
{
includeIncompleteAds: {
[Op.or]: {
[Op.eq]: true,
[Op.is]: null
}
}
}
]
}
]
}; };
} }
} }
//General query consists of each individual query //General query consists of each individual query
const query = { const query = {
adType, adType,
@@ -454,8 +328,18 @@ const findSearchRequestsForRealEstate = async realEstate => {
}; };
} }
// //Debugging logs
console.log("Query for search of req:", query); console.log("Query for search of req:", query);
console.log("Price", priceQuery);
console.log("Area", areaQuery);
console.log("Garden", gardenSizeQuery);
console.log("Number of rooms", numberOfRoomsQuery);
console.log("Number offloors", numberOfFloorsQuery);
console.log("Floor", floorQuery);
console.log("Balcony", balconyQuery);
console.log("New building", newBuildingQuery);
console.log("Elevator", elevatorQuery);
//
return await db.SearchRequest.findAll({ return await db.SearchRequest.findAll({
where: query where: query