UNPKG

@idiamantino/livepro-utils

Version:

Stuff for LP

56 lines (45 loc) 1.81 kB
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;