use template for public tx url
This commit is contained in:
parent
4edb212c49
commit
20b3d50ef9
|
@ -55,6 +55,10 @@ var config = {
|
||||||
templatePath: './lib/templates',
|
templatePath: './lib/templates',
|
||||||
defaultLanguage: 'en',
|
defaultLanguage: 'en',
|
||||||
defaultUnit: 'btc',
|
defaultUnit: 'btc',
|
||||||
|
publicTxUrlTemplate: {
|
||||||
|
livenet: 'https://insight.bitpay.com/tx/{{txid}}',
|
||||||
|
testnet: 'https://test-insight.bitpay.com/tx/{{txid}}',
|
||||||
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
module.exports = config;
|
module.exports = config;
|
||||||
|
|
|
@ -108,8 +108,4 @@ Insight.prototype.initSocket = function() {
|
||||||
return socket;
|
return socket;
|
||||||
};
|
};
|
||||||
|
|
||||||
Insight.prototype.getPublicUrlForTx = function(txid) {
|
|
||||||
return this.url + '/tx/' + txid;
|
|
||||||
};
|
|
||||||
|
|
||||||
module.exports = Insight;
|
module.exports = Insight;
|
||||||
|
|
|
@ -69,6 +69,9 @@ EmailService.prototype.start = function(opts, cb) {
|
||||||
self.defaultLanguage = opts.emailOpts.defaultLanguage || 'en';
|
self.defaultLanguage = opts.emailOpts.defaultLanguage || 'en';
|
||||||
self.defaultUnit = opts.emailOpts.defaultUnit || 'btc';
|
self.defaultUnit = opts.emailOpts.defaultUnit || 'btc';
|
||||||
self.templatePath = path.normalize((opts.emailOpts.templatePath || (__dirname + '/templates')) + '/');
|
self.templatePath = path.normalize((opts.emailOpts.templatePath || (__dirname + '/templates')) + '/');
|
||||||
|
self.publicTxUrlTemplate = opts.emailOpts.publicTxUrlTemplate || {};
|
||||||
|
self.subjectPrefix = opts.emailOpts.subjectPrefix || '[Wallet service]';
|
||||||
|
self.from = opts.emailOpts.from;
|
||||||
|
|
||||||
async.parallel([
|
async.parallel([
|
||||||
|
|
||||||
|
@ -119,8 +122,6 @@ EmailService.prototype.start = function(opts, cb) {
|
||||||
},
|
},
|
||||||
function(done) {
|
function(done) {
|
||||||
self.mailer = opts.mailer || nodemailer.createTransport(opts.emailOpts);
|
self.mailer = opts.mailer || nodemailer.createTransport(opts.emailOpts);
|
||||||
self.subjectPrefix = opts.emailOpts.subjectPrefix || '[Wallet service]';
|
|
||||||
self.from = opts.emailOpts.from;
|
|
||||||
done();
|
done();
|
||||||
},
|
},
|
||||||
], function(err) {
|
], function(err) {
|
||||||
|
@ -255,8 +256,16 @@ EmailService.prototype._getDataForTemplate = function(notification, recipient, c
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_.contains(['NewIncomingTx', 'NewOutgoingTx'], notification.type) && data.txid) {
|
if (_.contains(['NewIncomingTx', 'NewOutgoingTx'], notification.type) && data.txid) {
|
||||||
data.urlForTx = self.explorers[wallet.network].getPublicUrlForTx(data.txid);
|
var urlTemplate = self.publicTxUrlTemplate[wallet.network];
|
||||||
|
if (urlTemplate) {
|
||||||
|
try {
|
||||||
|
data.urlForTx = Mustache.render(urlTemplate, data);
|
||||||
|
} catch (ex) {
|
||||||
|
log.warn('Could not render public url for tx', ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return cb(null, data);
|
return cb(null, data);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
|
@ -20,7 +20,6 @@ describe('Blockchain explorer', function() {
|
||||||
exp.should.respondTo('getAddressActivity');
|
exp.should.respondTo('getAddressActivity');
|
||||||
exp.should.respondTo('getUnspentUtxos');
|
exp.should.respondTo('getUnspentUtxos');
|
||||||
exp.should.respondTo('initSocket');
|
exp.should.respondTo('initSocket');
|
||||||
exp.should.respondTo('getPublicUrlForTx');
|
|
||||||
var exp = new BlockchainExplorer({
|
var exp = new BlockchainExplorer({
|
||||||
provider: 'insight',
|
provider: 'insight',
|
||||||
network: 'livenet',
|
network: 'livenet',
|
||||||
|
|
|
@ -340,6 +340,10 @@ describe('Wallet service', function() {
|
||||||
emailOpts: {
|
emailOpts: {
|
||||||
from: 'bws@dummy.net',
|
from: 'bws@dummy.net',
|
||||||
subjectPrefix: '[test wallet]',
|
subjectPrefix: '[test wallet]',
|
||||||
|
publicTxUrlTemplate: {
|
||||||
|
livenet: 'https://insight.bitpay.com/tx/{{txid}}',
|
||||||
|
testnet: 'https://test-insight.bitpay.com/tx/{{txid}}',
|
||||||
|
},
|
||||||
},
|
},
|
||||||
}, function(err) {
|
}, function(err) {
|
||||||
should.not.exist(err);
|
should.not.exist(err);
|
||||||
|
@ -463,7 +467,7 @@ describe('Wallet service', function() {
|
||||||
one.text.should.contain(wallet.name);
|
one.text.should.contain(wallet.name);
|
||||||
one.text.should.contain('800,000');
|
one.text.should.contain('800,000');
|
||||||
should.exist(one.html);
|
should.exist(one.html);
|
||||||
one.html.should.contain('https://insight.bitpay.com:443/tx/999');
|
one.html.should.contain('https://insight.bitpay.com/tx/999');
|
||||||
server.storage.fetchUnsentEmails(function(err, unsent) {
|
server.storage.fetchUnsentEmails(function(err, unsent) {
|
||||||
should.not.exist(err);
|
should.not.exist(err);
|
||||||
unsent.should.be.empty;
|
unsent.should.be.empty;
|
||||||
|
|
Loading…
Reference in New Issue