Ich bin in den Zustand (Wert) von getcondition (req, Sequelize)Wie schreibe ich diesen Code besten Weg, der hat so viele wenn Bedingungen in Javascript?
Code erhalten:
options.where = getcondition(req, Sequelize);
options.include = [{
model: hp_builders,
required: true
}, { .... },{ .... }]
hp_property.findAndCountAll(options, {
subQuery: false
}).then(function(result) {
res.json(result);
});
so für unterschiedliche Anforderungen .i anderen Wert in options.where = getcondition (erf zuweisen haben , Sequelize);
also wie kann ich in einer effektiven Weise für getcondition schreiben (req, Sequelize);
meine getcondition (req, Sequelize) Funktionscode:
function getcondition(req, Sequelize) {
var condition = JSON.parse(req.query.selector);
if (condition.hasOwnProperty("city_id")) {
if (condition.hasOwnProperty("Inhibition")){
console.log(JSON.stringify(condition));
return {
$and: [{
hp_city_id: condition.city_id
},
Sequelize.literal("`hp_property`.`hp_property_inhibition_status_id` IN (" + condition.Inhibition + ")"),
]
}
}
if (condition.hasOwnProperty("bedrooms") && condition.hasOwnProperty("budgetPrice")) {
var budgetPrice = condition.budgetPrice.split(",");
var minRange = budgetPrice[0];
var maxRange = budgetPrice[1];
return {
$and: [{
hp_city_id: condition.city_id
},
Sequelize.literal("`hp_unit_details`.`hp_unit_type_id` IN (" + condition.bedrooms + ")"),
Sequelize.literal("`hp_unit_details.hp_unit_prices`.`price_per_sqft` * `hp_unit_details`.`property_size` BETWEEN " + minRange + " AND " + maxRange)
]
}
}
if (condition.hasOwnProperty("bedrooms") && !condition.hasOwnProperty("budgetPrice")) {
return {
$and: [{
hp_city_id: condition.city_id
},
Sequelize.literal("`hp_unit_details`.`hp_unit_type_id` IN (" + condition.bedrooms + ")")
]
}
} else if (condition.hasOwnProperty("budgetPrice") && !condition.hasOwnProperty("bedrooms")) {
var budgetPrice = condition.budgetPrice.split(",");
var minRange = budgetPrice[0];
var maxRange = budgetPrice[1];
return {
$and: [{
hp_city_id: condition.city_id
},
Sequelize.literal("`hp_unit_details.hp_unit_prices`.`price_per_sqft` * `hp_unit_details`.`property_size` BETWEEN " + minRange + " AND " + maxRange)
]
}
}
return {
hp_city_id: condition.city_id
}
}
else if (condition.hasOwnProperty("id")) {
if (condition.hasOwnProperty("Inhibition")){
console.log(JSON.stringify(condition));
return {
$and: [{
hp_builders_id: condition.id
},
Sequelize.literal("`hp_property`.`hp_property_inhibition_status_id` IN (" + condition.Inhibition + ")"),
]
}
}
if (condition.hasOwnProperty("bedrooms") && condition.hasOwnProperty("budgetPrice")) {
var budgetPrice = condition.budgetPrice.split(",");
var minRange = budgetPrice[0];
var maxRange = budgetPrice[1];
return {
$and: [{
hp_builders_id: condition.id
},
Sequelize.literal("`hp_unit_details`.`hp_unit_type_id` IN (" + condition.bedrooms + ")"),
Sequelize.literal("`hp_unit_details.hp_unit_prices`.`price_per_sqft` * `hp_unit_details`.`property_size` BETWEEN " + minRange + " AND " + maxRange)
]
}
}
if (condition.hasOwnProperty("bedrooms") && !condition.hasOwnProperty("budgetPrice")) {
return {
$and: [{
hp_builders_id: condition.id
},
Sequelize.literal("`hp_unit_details`.`hp_unit_type_id` IN (" + condition.bedrooms + ")")
]
}
} else if (condition.hasOwnProperty("budgetPrice" && !condition.hasOwnProperty("bedrooms"))) {
var budgetPrice = condition.budgetPrice.split(",");
var minRange = budgetPrice[0];
var maxRange = budgetPrice[1];
return {
$and: [{
hp_builders_id: condition.id
},
Sequelize.literal("`hp_unit_details.hp_unit_prices`.`price_per_sqft` * `hp_unit_details`.`property_size` BETWEEN " + minRange + " AND " + maxRange)
]
}
}
return {
hp_builders_id: condition.id
}
} else if (condition.hasOwnProperty("location_id")) {
console.log(JSON.stringify(req.query.selector) + ".....");
return {
hp_location_id: condition.location_id
}
}
}
Bitte ein MCVE, SO ist kein Debugging-Service – DrakaSAN