@idiamantino/livepro-utils
Version:
Stuff for LP
56 lines (45 loc) • 1.81 kB
JavaScript
const AWS = require('aws-sdk');
const Utils = require("../library/utils");
let LpUtils = new Utils();
class Sns {
constructor(region, apiVersion = '2010-03-31', debug = false) {
this.setDebug(debug);
this.region = region;
LpUtils.printDebug("SNS constructor region:", region);
AWS.config.update({region:this.region});
this.sns = new AWS.SNS({apiVersion: apiVersion});
}
setDebug(debug = false) {
this.debug = debug;
LpUtils.setDebug(debug);
}
async test(params){
LpUtils.printDebug("SNS function accessible:", params);
LpUtils.printDebug("Region:", this.region);
let dateNow = new Date();
this.sendMessage("testing: " + dateNow.toLocaleString(),"arn:aws:sns:ap-southeast-2:198588588204:LIVEPRO_5_PROCESSES");
return (true);
}
async sendMessage(text, arn) {
LpUtils.printDebug("Sending sns message: ", text);
LpUtils.printDebug("Arn used: ", arn);
// Create publish parameters
var params = {
Message: text, /* required */
TopicArn: arn
};
// Create promise and SNS service object
var publishTextPromise = this.sns.publish(params).promise();
// var publishTextPromise = new AWS.SNS({apiVersion: '2010-03-31'}).publish(params).promise();
// Handle promise's fulfilled/rejected states
publishTextPromise.then(
function(data) {
LpUtils.printDebug(`Message ${params.Message} send sent to the topic ${params.TopicArn}`);
LpUtils.printDebug("MessageID is " + data.MessageId);
}).catch(
function(err) {
console.error(err, err.stack);
});
}
}
module.exports = Sns;