Merge branch 'tag-staging-email' into 'master'
Tag staging email See merge request saburly/marketalarm/web!85
This commit was merged in pull request #85.
This commit is contained in:
@@ -9,6 +9,8 @@ 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.SETTINGS !== "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;
|
||||||
@@ -50,6 +52,8 @@ module.exports = {
|
|||||||
MAX_REAL_ESTATES_IN_FIRST_EMAIL,
|
MAX_REAL_ESTATES_IN_FIRST_EMAIL,
|
||||||
PRINT_CRAWLER_DEBUG,
|
PRINT_CRAWLER_DEBUG,
|
||||||
API_MAP_KEY,
|
API_MAP_KEY,
|
||||||
|
STAGING,
|
||||||
CHECK_UP_DAYS,
|
CHECK_UP_DAYS,
|
||||||
PROSTOR_LOGIN
|
PROSTOR_LOGIN
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,8 +1,15 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
const { MAX_REAL_ESTATES_IN_EMAIL, APP_URL } = require("../config/appConfig");
|
const {
|
||||||
|
MAX_REAL_ESTATES_IN_EMAIL,
|
||||||
|
APP_URL,
|
||||||
|
STAGING
|
||||||
|
} = 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
|
||||||
|
const stagingTag = STAGING ? "[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>
|
||||||
<div>Ako želite prestati dobijati obavještenja za ovu pretragu, <a href="${APP_URL}/odjava/${searchRequestId}">odjavite ovdje</a></div>
|
<div>Ako želite prestati dobijati obavještenja za ovu pretragu, <a href="${APP_URL}/odjava/${searchRequestId}">odjavite ovdje</a></div>
|
||||||
@@ -54,7 +61,7 @@ const generateNotificationEmail = (
|
|||||||
|
|
||||||
const messageBody = dailyNotification ? dailyMessageBody : asapMessageBody;
|
const messageBody = dailyNotification ? dailyMessageBody : asapMessageBody;
|
||||||
|
|
||||||
return `<h3>Zdravo</h3>
|
return `<h3>${stagingTag}Zdravo</h3>
|
||||||
<h4>${messageBody}</h4>
|
<h4>${messageBody}</h4>
|
||||||
<div>
|
<div>
|
||||||
${realEstateLinks}
|
${realEstateLinks}
|
||||||
@@ -113,7 +120,7 @@ const generateNewSearchRequestEmail = (searchRequest, matchingRealEstates) => {
|
|||||||
|
|
||||||
const emailFooter = generateEmailFooter(id, emailFrequencyTitle);
|
const emailFooter = generateEmailFooter(id, emailFrequencyTitle);
|
||||||
|
|
||||||
return `<h3>Zdravo</h3>
|
return `<h3>${stagingTag}Zdravo</h3>
|
||||||
<div>Naručili ste da Vam javimo ako se nekretnina sa navedenim uslovima pojavi u oglasima:</div>
|
<div>Naručili ste da Vam javimo ako se nekretnina sa navedenim uslovima pojavi u oglasima:</div>
|
||||||
<br/>
|
<br/>
|
||||||
<div>
|
<div>
|
||||||
@@ -130,7 +137,7 @@ const generateNewSearchRequestEmail = (searchRequest, matchingRealEstates) => {
|
|||||||
|
|
||||||
const generateEmailSubject = (numberOfRealEstates, singleRealEstateTitle) => {
|
const generateEmailSubject = (numberOfRealEstates, singleRealEstateTitle) => {
|
||||||
if (numberOfRealEstates === 1) {
|
if (numberOfRealEstates === 1) {
|
||||||
return `Kivi: ${singleRealEstateTitle}`;
|
return `${stagingTag}Kivi: ${singleRealEstateTitle}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
const leastSignificantDigit = numberOfRealEstates % 10;
|
const leastSignificantDigit = numberOfRealEstates % 10;
|
||||||
@@ -138,7 +145,7 @@ const generateEmailSubject = (numberOfRealEstates, singleRealEstateTitle) => {
|
|||||||
const secondLeastSignificantDigit = numberWithoutLastDigit % 10;
|
const secondLeastSignificantDigit = numberWithoutLastDigit % 10;
|
||||||
|
|
||||||
if (leastSignificantDigit === 1 && secondLeastSignificantDigit !== 1) {
|
if (leastSignificantDigit === 1 && secondLeastSignificantDigit !== 1) {
|
||||||
return `Kivi : ${numberOfRealEstates} nova nekretnina`;
|
return `${stagingTag}Kivi : ${numberOfRealEstates} nova nekretnina`;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (
|
if (
|
||||||
@@ -146,10 +153,10 @@ const generateEmailSubject = (numberOfRealEstates, singleRealEstateTitle) => {
|
|||||||
leastSignificantDigit <= 4 &&
|
leastSignificantDigit <= 4 &&
|
||||||
secondLeastSignificantDigit !== 1
|
secondLeastSignificantDigit !== 1
|
||||||
) {
|
) {
|
||||||
return `Kivi: ${numberOfRealEstates} nove nekretnine`;
|
return `${stagingTag}Kivi: ${numberOfRealEstates} nove nekretnine`;
|
||||||
}
|
}
|
||||||
|
|
||||||
return `Kivi: ${numberOfRealEstates} novih nekretnina`;
|
return `${stagingTag}Kivi: ${numberOfRealEstates} novih nekretnina`;
|
||||||
};
|
};
|
||||||
|
|
||||||
const generateCheckUpEmail = searchRequest => {
|
const generateCheckUpEmail = searchRequest => {
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
|
const { STAGING } = require("../config/appConfig");
|
||||||
const {
|
const {
|
||||||
matchRealEstates,
|
matchRealEstates,
|
||||||
matchSearchRequest
|
matchSearchRequest
|
||||||
@@ -26,13 +27,17 @@ const notifyForNewSearchRequest = async searchRequest => {
|
|||||||
|
|
||||||
const searchRequestId = searchRequest.id;
|
const searchRequestId = searchRequest.id;
|
||||||
const matchingRealEstates = matches[searchRequestId].realEstates;
|
const matchingRealEstates = matches[searchRequestId].realEstates;
|
||||||
|
const stagingTag = STAGING ? "[STAGING] " : "";
|
||||||
const emailContent = generateNewSearchRequestEmail(
|
const emailContent = generateNewSearchRequestEmail(
|
||||||
searchRequest,
|
searchRequest,
|
||||||
matchingRealEstates
|
matchingRealEstates
|
||||||
);
|
);
|
||||||
const { email } = searchRequest;
|
const { email } = searchRequest;
|
||||||
await sendEmail(email, "Kivi - novi zahtjev za pretragu", emailContent);
|
await sendEmail(
|
||||||
|
email,
|
||||||
|
`${stagingTag} Kivi - novi zahtjev za pretragu`,
|
||||||
|
emailContent
|
||||||
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
const notifyMatches = async (matches, dailyNotification = false) => {
|
const notifyMatches = async (matches, dailyNotification = false) => {
|
||||||
|
|||||||
@@ -8,6 +8,9 @@ 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
|
||||||
|
|
||||||
|
SETTINGS=Variable to denote development, staging and production
|
||||||
|
|
||||||
|
|
||||||
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
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user