1.0.0 • Published 7 years ago

sns-event-sender v1.0.0

Weekly downloads
5
License
MIT
Repository
github
Last release
7 years ago

SNS Event Sender

This module can be used to send events/messages to any SNS topic

Usage

var sns = require('sns-event-sender');
sns.updateConfig({region: 'ap-southeast-1'});
sns.setTopic('arn:aws:sns:ap-southeast-1:381147823962:my-topic');


sns.notify("userLogin", {"userId": "198", "date": "26/08/2017"}, function(error, data){
  if(error) {
    console.error(error, error.stack);
  } else {
    console.log(data);
  }
});

If you want to send an event to a different topic by explicitly specifying topic arn

sns.notifyToTopic("userLogin", {"userId": "198", "date": "26/08/2017"},
'arn:aws:sns:ap-southeast-1:381147823962:my-new-topic',
function(error, data){
  if(error) {
    console.error(error, error.stack);
  } else {
    console.log(data);
  }
});

If you want to use Promises

var Promise = require("bluebird");
var sns = Promise.promisifyAll(require('sns-event-sender'));
sns.updateConfig({region: 'ap-southeast-1'})
sns.setTopic('arn:aws:sns:ap-southeast-1:381147823962:my-topic');

sns.notifyAsync("userLogin", {"userId": "198", "date": "26/08/2017"})
  .then(function(data) {
    console.log(data);
  })
  .catch(function(error) {
    console.error(error, error.stack);
  });

Sendig to a specific topic

sns.notifyToTopicAsync("userLogin",
{"userId": "198", "date": "26/08/2017"},
'arn:aws:sns:ap-southeast-1:381147823962:my-new-topic')
  .then(function(data) {
    console.log(data);
  })
  .catch(function(error) {
    console.error(error, error.stack);
  });

If you want to allow only certain event names from your app

In default mode the module allows all event names. In case you want to be extra sure about the event names that you are sending, you can use setWhitelist to create an event whitelist of allowed events as shown below:

var sns = require('sns-event-sender');
sns.updateConfig({region: 'ap-southeast-1'});
sns.setTopic('arn:aws:sns:ap-southeast-1:381147823962:my-topic');
// Create a whitelist of allowed event names
sns.setWhitelist(['userSignup', 'userLogin']);

// This will successfully send an event to SNS
sns.notify("userLogin", {"userId": "198", "date": "26/08/2017"}, function(error, data){
  if(error) {
    console.error(error, error.stack);
  } else {
    console.log(data);
  }
});


// This will raise an error
sns.notify("userCreated", {"userId": "198", "date": "26/08/2017"}, function(error, data){
  if(error) {
    console.error(error, error.stack);
  } else {
    console.log(data);
  }
});