Merge branch 'pull/763' into development
This commit is contained in:
commit
e61e0fb802
2 changed files with 39 additions and 12 deletions
|
@ -14,7 +14,7 @@ const sendConfigurations = require('../models/send-configurations');
|
||||||
const links = require('../models/links');
|
const links = require('../models/links');
|
||||||
const {CampaignSource, CampaignType} = require('../../shared/campaigns');
|
const {CampaignSource, CampaignType} = require('../../shared/campaigns');
|
||||||
const {toNameTagLangauge} = require('../../shared/lists');
|
const {toNameTagLangauge} = require('../../shared/lists');
|
||||||
const {CampaignMessageStatus} = require('../../shared/campaigns');
|
const {CampaignMessageStatus, CampaignMessageErrorCode} = require('../../shared/campaigns');
|
||||||
const tools = require('./tools');
|
const tools = require('./tools');
|
||||||
const htmlToText = require('html-to-text');
|
const htmlToText = require('html-to-text');
|
||||||
const request = require('request-promise');
|
const request = require('request-promise');
|
||||||
|
@ -202,14 +202,26 @@ class MessageSender {
|
||||||
|
|
||||||
const sourceUrl = campaign.data.sourceUrl;
|
const sourceUrl = campaign.data.sourceUrl;
|
||||||
|
|
||||||
const response = await request.post({
|
let response;
|
||||||
uri: sourceUrl,
|
try {
|
||||||
form,
|
response = await request.post({
|
||||||
resolveWithFullResponse: true
|
uri: sourceUrl,
|
||||||
});
|
form,
|
||||||
|
resolveWithFullResponse: true
|
||||||
|
});
|
||||||
|
} catch (e) {
|
||||||
|
log.error('MessageSender', `Error pulling content from URL (${sourceUrl})`);
|
||||||
|
response = {statusCode: e.message};
|
||||||
|
}
|
||||||
|
|
||||||
if (response.statusCode !== 200) {
|
if (response.statusCode !== 200) {
|
||||||
throw new Error(`Received status code ${httpResponse.statusCode} from ${sourceUrl}`);
|
const statusError = new Error(`Received status code ${response.statusCode} from ${sourceUrl}`);
|
||||||
|
if (response.statusCode >= 500) {
|
||||||
|
statusError.code = CampaignMessageErrorCode.RETRY;
|
||||||
|
} else {
|
||||||
|
statusError.code = CampaignMessageErrorCode.NORETRY;
|
||||||
|
}
|
||||||
|
throw statusError;
|
||||||
}
|
}
|
||||||
|
|
||||||
html = response.body;
|
html = response.body;
|
||||||
|
@ -504,13 +516,21 @@ class MessageSender {
|
||||||
try {
|
try {
|
||||||
result = await this._sendMessage({listId: campaignMessage.list, subscriptionId: campaignMessage.subscription});
|
result = await this._sendMessage({listId: campaignMessage.list, subscriptionId: campaignMessage.subscription});
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
await knex('campaign_messages')
|
if (err.code === CampaignMessageErrorCode.NORETRY) {
|
||||||
|
await knex('campaign_messages')
|
||||||
|
.where({id: campaignMessage.id})
|
||||||
|
.update({
|
||||||
|
status: CampaignMessageStatus.FAILED,
|
||||||
|
updated: new Date()
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
await knex('campaign_messages')
|
||||||
.where({id: campaignMessage.id})
|
.where({id: campaignMessage.id})
|
||||||
.update({
|
.update({
|
||||||
status: CampaignMessageStatus.SCHEDULED,
|
status: CampaignMessageStatus.SCHEDULED,
|
||||||
updated: new Date()
|
updated: new Date()
|
||||||
});
|
});
|
||||||
|
}
|
||||||
throw err;
|
throw err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -755,4 +775,4 @@ module.exports.queueCampaignMessageTx = queueCampaignMessageTx;
|
||||||
module.exports.queueSubscriptionMessage = queueSubscriptionMessage;
|
module.exports.queueSubscriptionMessage = queueSubscriptionMessage;
|
||||||
module.exports.dropQueuedMessage = dropQueuedMessage;
|
module.exports.dropQueuedMessage = dropQueuedMessage;
|
||||||
module.exports.getMessage = getMessage;
|
module.exports.getMessage = getMessage;
|
||||||
module.exports.queueAPITransactionalMessage = queueAPITransactionalMessage;
|
module.exports.queueAPITransactionalMessage = queueAPITransactionalMessage;
|
||||||
|
|
|
@ -53,7 +53,13 @@ const CampaignMessageStatus = {
|
||||||
COMPLAINED: 4,
|
COMPLAINED: 4,
|
||||||
SCHEDULED: 5,
|
SCHEDULED: 5,
|
||||||
|
|
||||||
MAX: 5
|
MAX: 5,
|
||||||
|
FAILED: 6
|
||||||
|
};
|
||||||
|
|
||||||
|
const CampaignMessageErrorCode = {
|
||||||
|
RETRY: 0,
|
||||||
|
NORETRY: 1
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -90,5 +96,6 @@ module.exports = {
|
||||||
CampaignStatus,
|
CampaignStatus,
|
||||||
campaignOverridables,
|
campaignOverridables,
|
||||||
CampaignMessageStatus,
|
CampaignMessageStatus,
|
||||||
|
CampaignMessageErrorCode,
|
||||||
getSendConfigurationPermissionRequiredForSend
|
getSendConfigurationPermissionRequiredForSend
|
||||||
};
|
};
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue