63 lines
1.3 KiB
JavaScript
63 lines
1.3 KiB
JavaScript
const db = require('../../models/index');
|
|
|
|
/**
|
|
* Find all subscribed RealEstateRequests
|
|
*/
|
|
const allRERequest = async () => {
|
|
return await db.RealEstateRequest.findAll({
|
|
where: {
|
|
subscribed: true
|
|
}
|
|
});
|
|
}
|
|
|
|
|
|
/**
|
|
* Find all unnotified marketalerts, and order them by email
|
|
*
|
|
* @param notified bolean
|
|
*
|
|
* @returns array of MarketAlerts
|
|
*/
|
|
const allMarketAlerts = async (notified) => {
|
|
|
|
let queryObject = {
|
|
order: [
|
|
['email', 'DESC'],
|
|
]
|
|
}
|
|
|
|
if (notified){
|
|
queryObject.where = {
|
|
notified: notified
|
|
}
|
|
}
|
|
return await db.MarketAlert.findAll(queryObject);
|
|
|
|
// return await db.MarketAlerts.findAll({
|
|
// where: {
|
|
// notified: notified
|
|
// },
|
|
// order: [
|
|
// ['email', 'DESC'],
|
|
// ]
|
|
// });
|
|
}
|
|
|
|
/**
|
|
* Find all unnotified marketalerts
|
|
* @param latLng array
|
|
* @param email strig
|
|
*
|
|
* @returns array of MarketAlerts
|
|
*/
|
|
const findPointInsideBoundingBox = async (latLng, email) => {
|
|
return await db.sequelize.query(`SELECT * FROM "RealEstateRequests" WHERE email = '${email}' AND subscribed = true AND ST_Contains("RealEstateRequests".bounding_box, ST_GEOMFROMTEXT('POINT (${latLng[0]} ${latLng[1]})'))`);
|
|
}
|
|
|
|
module.exports = {
|
|
allRERequest,
|
|
allMarketAlerts,
|
|
findPointInsideBoundingBox
|
|
};
|