Compare commits

..

1 Commits

Author SHA1 Message Date
Naida Vatric
8435afe9c5 Renamed variables to describe purpose. 2020-02-23 18:47:27 +01:00
8 changed files with 27 additions and 44 deletions

View File

@@ -9,14 +9,14 @@ const APP_URL =
? process.env.APP_URL || "http://market-alarm" ? process.env.APP_URL || "http://market-alarm"
: process.env.APP_URL || `${APP_BASE_URL}:${APP_PORT}`; : process.env.APP_URL || `${APP_BASE_URL}:${APP_PORT}`;
const STAGING = process.env.ENVIRONMENT !== "production"; const USE_KIVI_ENVIRONMENT_TAG = process.env.KIVI_ENVIRONMENT !== "production";
const DEFAULT_TIMEZONE = "Europe/Sarajevo"; const DEFAULT_TIMEZONE = "Europe/Sarajevo";
const CRAWLER_INTERVAL = parseInt(process.env.CRAWLER_INTERVAL) || 60; const CRAWLER_INTERVAL = parseInt(process.env.CRAWLER_INTERVAL) || 60;
const STOP_CRAWLER = !!parseInt(process.env.STOP_CRAWLER); const STOP_CRAWLER = !!parseInt(process.env.STOP_CRAWLER);
const CHECK_UP_DAYS = parseInt(process.env.CHECK_UP_DAYS) || 10; const NO_CHECK_UP_DAYS = parseInt(process.env.NO_CHECK_UP_DAYS) || 10;
const AWS_EMAIL_CONFIG = { const AWS_EMAIL_CONFIG = {
REGION: process.env.AWS_REGION || "", REGION: process.env.AWS_REGION || "",
@@ -34,7 +34,7 @@ const MAX_REAL_ESTATES_IN_FIRST_EMAIL =
const PRINT_CRAWLER_DEBUG = process.env.PRINT_CRAWLER_DEBUG_INFO || 0; const PRINT_CRAWLER_DEBUG = process.env.PRINT_CRAWLER_DEBUG_INFO || 0;
const API_MAP_KEY = process.env.API_MAP_KEY || ""; const GOOGLE_MAP_KEY = process.env.GOOGLE_MAP_KEY || "";
const PROSTOR_LOGIN = { const PROSTOR_LOGIN = {
EMAIL: process.env.PROSTOR_LOGIN_EMAIL, EMAIL: process.env.PROSTOR_LOGIN_EMAIL,
@@ -45,9 +45,6 @@ const USER_AGENT =
process.env.USER_AGENT || process.env.USER_AGENT ||
"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36"; "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36";
const USE_SCRAPER_API = process.env.USE_SCRAPER_API || 1; //Default to use
const SCRAPER_API_KEY = process.env.SCRAPER_API_KEY || "";
module.exports = { module.exports = {
APP_PORT, APP_PORT,
APP_URL, APP_URL,
@@ -58,11 +55,9 @@ module.exports = {
MAX_REAL_ESTATES_IN_EMAIL, MAX_REAL_ESTATES_IN_EMAIL,
MAX_REAL_ESTATES_IN_FIRST_EMAIL, MAX_REAL_ESTATES_IN_FIRST_EMAIL,
PRINT_CRAWLER_DEBUG, PRINT_CRAWLER_DEBUG,
API_MAP_KEY, GOOGLE_MAP_KEY,
STAGING, USE_KIVI_ENVIRONMENT_TAG,
CHECK_UP_DAYS, NO_CHECK_UP_DAYS,
PROSTOR_LOGIN, PROSTOR_LOGIN,
USER_AGENT, USER_AGENT
USE_SCRAPER_API,
SCRAPER_API_KEY
}; };

View File

@@ -17,15 +17,15 @@ const getLocation = async (req, res) => {
return; return;
} }
const selectedArea = searchRequest.areaToSearch; const selectedArea = searchRequest.areaToSearch;
const sw = selectedArea.coordinates[0][3]; const southWest = selectedArea.coordinates[0][3];
const ne = selectedArea.coordinates[0][1]; const northEast = selectedArea.coordinates[0][1];
if (sw[0] && ne[0]) { if (sw[0] && ne[0]) {
selectedLatLngBounds = { selectedLatLngBounds = {
swLat: sw[1], swLat: southWest[1],
swLng: sw[0], swLng: southWest[0],
neLat: ne[1], neLat: northEast[1],
neLng: ne[0] neLng: northEast[0]
}; };
boundsSelected = true; boundsSelected = true;
} }

View File

@@ -2,7 +2,7 @@
const db = require("../../models/index"); const db = require("../../models/index");
const sequelize = require("sequelize"); const sequelize = require("sequelize");
const Op = sequelize.Op; const Op = sequelize.Op;
const { CHECK_UP_DAYS } = require("../../config/appConfig"); const { NO_CHECK_UP_DAYS } = require("../../config/appConfig");
const findRealEstatesForSearchRequest = async searchRequestId => { const findRealEstatesForSearchRequest = async searchRequestId => {
const query = { const query = {
@@ -45,9 +45,9 @@ const findNotNotifiedMatches = async () => {
}; };
const findAllRequestsForCheckUp = async () => { const findAllRequestsForCheckUp = async () => {
//First we find IDs of search request that don't need to be emailed for check up - to EXCLUDE //First we find IDs of search request that don't need to be emailed for check up - to EXCLUDE
//The ones that received notification for real estate CHECK_UP_DAYS days from now //The ones that received notification for real estate NO_CHECK_UP_DAYS days from now
const date = new Date(); const date = new Date();
const checkUpDate = date.getDate() - CHECK_UP_DAYS; const checkUpDate = date.getDate() - NO_CHECK_UP_DAYS;
date.setDate(checkUpDate); date.setDate(checkUpDate);
const dateQuery = { const dateQuery = {
createdAt: { createdAt: {

View File

@@ -3,12 +3,12 @@
const { const {
MAX_REAL_ESTATES_IN_EMAIL, MAX_REAL_ESTATES_IN_EMAIL,
APP_URL, APP_URL,
STAGING USE_KIVI_ENVIRONMENT_TAG
} = require("../config/appConfig"); } = require("../config/appConfig");
const { AD_CATEGORY, AD_TYPE, EMAIL_FREQUENCY } = require("../common/enums"); const { AD_CATEGORY, AD_TYPE, EMAIL_FREQUENCY } = require("../common/enums");
//Tag to recognize staging from development //Tag to recognize staging from development if needed
const stagingTag = STAGING ? "[STAGING] " : ""; const stagingTag = USE_KIVI_ENVIRONMENT_TAG ? "[STAGING] " : "";
const generateEmailFooter = (searchRequestId, emailFrequencyTitle) => { const generateEmailFooter = (searchRequestId, emailFrequencyTitle) => {
return ` <div>Trenutno ste prijavljeni da obavještenja o novim nekretninama primate <strong>${emailFrequencyTitle.toLowerCase()} </strong>.</div> return ` <div>Trenutno ste prijavljeni da obavještenja o novim nekretninama primate <strong>${emailFrequencyTitle.toLowerCase()} </strong>.</div>

View File

@@ -1,9 +1,5 @@
const nodeFetch = require("node-fetch"); const nodeFetch = require("node-fetch");
const { const { USER_AGENT } = require("../config/appConfig");
USER_AGENT,
USE_SCRAPER_API,
SCRAPER_API_KEY
} = require("../config/appConfig");
const fetch = async (url, options = {}) => { const fetch = async (url, options = {}) => {
const newOptions = Object.assign({}, options); const newOptions = Object.assign({}, options);
@@ -11,11 +7,7 @@ const fetch = async (url, options = {}) => {
newOptions["headers"] = {}; newOptions["headers"] = {};
} }
newOptions["headers"]["User-Agent"] = USER_AGENT; newOptions["headers"]["User-Agent"] = USER_AGENT;
const urlAdaptedForScraping = USE_SCRAPER_API return nodeFetch(url, newOptions);
? `http://api.scraperapi.com/?api_key=${SCRAPER_API_KEY}&url=${url}`
: url;
return nodeFetch(urlAdaptedForScraping, newOptions);
}; };
module.exports = fetch; module.exports = fetch;

View File

@@ -1,7 +1,7 @@
"use strict"; "use strict";
const { STAGING } = require("../config/appConfig"); const { USE_KIVI_ENVIRONMENT_TAG } = require("../config/appConfig");
const stagingTag = STAGING ? "[STAGING] " : ""; const stagingTag = USE_KIVI_ENVIRONMENT_TAG ? "[STAGING] " : "";
const { const {
matchRealEstates, matchRealEstates,

View File

@@ -217,7 +217,7 @@
}); });
</script> </script>
<script <script
src="https://maps.googleapis.com/maps/api/js?key=<%= process.env.API_MAP_KEY %>&language=bs&libraries=places&callback=initMap" src="https://maps.googleapis.com/maps/api/js?key=<%= process.env.GOOGLE_MAP_KEY %>&language=bs&libraries=places&callback=initMap"
async async
defer defer
></script> ></script>

View File

@@ -8,23 +8,19 @@ SEQUELIZE_LOGGING=0- no sequelize logging, 1- log to the console
PORT=Port for the app, defaults to 5000 PORT=Port for the app, defaults to 5000
APP_BASE_URL=base url for the app APP_BASE_URL=base url for the app
ENVIRONMENT=Variable to denote development, staging and production KIVI_ENVIRONMENT=Variable to denote development, staging and production
USER_AGENT=User agent header to send in fetch requests USER_AGENT=User agent header to send in fetch requests
MAX_REAL_ESTATES_IN_EMAIL=Max number of real estates that will be shown in email, others will be truncated and URL with full list will be shwon MAX_REAL_ESTATES_IN_EMAIL=Max number of real estates that will be shown in email, others will be truncated and URL with full list will be shwon
MAX_REAL_ESTATES_IN_FIRST_EMAIL=Max number of real estates that will be shown in first (welcome) email MAX_REAL_ESTATES_IN_FIRST_EMAIL=Max number of real estates that will be shown in first (welcome) email
CHECK_UP_DAYS=Check up email is sent after this number of days without notification NO_CHECK_UP_DAYS=Check up email is sent after this number of days without notification
#=============== GOOGLE ANALYTICS =============# #=============== GOOGLE ANALYTICS =============#
GA_ID=Google Analytics ID GA_ID=Google Analytics ID
#=============== GOOGLE MAPS =============# #=============== GOOGLE MAPS =============#
API_MAP_KEY=(your-key-here) GOOGLE_MAP_KEY=(your-key-here)
#=============== SCRAPER API SUPORT =============#
USE_SCRAPER_API= To turn it on (1) or off (0)
SCRAPER_API_KEY= Key for Scraper api
#=============== AWS SDK EMAIL SETTINGS =======# #=============== AWS SDK EMAIL SETTINGS =======#
AWS_KEY_ID=(your-key-here) AWS_KEY_ID=(your-key-here)