2016-05-20 08:48:29 -05:00
|
|
|
var Handlebars = require('handlebars')
|
|
|
|
var request = require('request')
|
2017-04-11 14:53:21 -05:00
|
|
|
var Logger = require('./logger')
|
2016-05-20 08:48:29 -05:00
|
|
|
|
|
|
|
module.exports.notify = function(metadata, config) {
|
|
|
|
|
|
|
|
if (config.notify && config.notify.content) {
|
|
|
|
|
|
|
|
var template = Handlebars.compile(config.notify.content)
|
|
|
|
var content = template( metadata )
|
|
|
|
|
|
|
|
var options = {
|
|
|
|
body: content
|
|
|
|
}
|
|
|
|
|
|
|
|
if ( config.notify.headers ) {
|
|
|
|
options.headers = config.notify.headers;
|
|
|
|
}
|
|
|
|
|
|
|
|
options.method = config.notify.method;
|
|
|
|
|
2017-04-11 14:53:21 -05:00
|
|
|
if (config.notify.endpoint) {
|
2016-05-20 08:48:29 -05:00
|
|
|
options.url = config.notify.endpoint
|
|
|
|
}
|
|
|
|
|
2017-04-11 14:53:21 -05:00
|
|
|
request(options, function(err, response, body) {
|
|
|
|
if (err) {
|
|
|
|
Logger.logger.error( { err: err }, ' notify error: @{err.message}' );
|
|
|
|
} else {
|
|
|
|
Logger.logger.info({ content: content}, 'A notification has been shipped: @{content}')
|
|
|
|
if (body) {
|
|
|
|
Logger.logger.debug( { body: body }, ' body: @{body}' );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
2016-05-20 08:48:29 -05:00
|
|
|
|
|
|
|
}
|
|
|
|
}
|