1.0.0 • Published 9 years ago

softlayer-messsage-queue v1.0.0

Weekly downloads
2
License
MIT
Repository
-
Last release
9 years ago

Softlayer Message Queue API Module for Node.js

NOTE:This is not official release from Softlayer, an IBM Company. Use this module at your own risk. Owner is not responsible for any kind of damage. Please refer http://sldn.softlayer.com/reference/messagequeueapi for more details.

To use this library you need a Softlayer message queue credential details, Which contain Account ID, User name & API key.The client has the following features:

Queue

  • Creates a new queue
  • Pushes a message to a queue
  • Pops messages from a queue
  • Get details of a queue
  • Lists all queues
  • Deletes a message from a queue
  • Deletes a queue

Topic

  • Creates a new topic
  • Adds a subscription to a topic
  • Pushes a message to a topic
  • Lists all topics
  • Get details of a topic
  • Lists subscriptions on a topic
  • Deletes a subscription
  • Deletes a topic

Account

  • Authenticate and receive an auth token
  • Show Requests/Notifications made for the current account

Other

  • Ping the service

Installation

$ npm install softlayer-message-queue

Usages

Creates a new Client

var mq = require('softlayer-message-queue');

//Create a new client using accountID, UserName & API Key 
var client = new mq.MessageClient(<accountID>, <UserName>, <API Key>);

//Set Datacenter to Get Endpoint. Please pass 'true' to get private endpoint url and 'false' to use public url.
client.SetDataCenter(mq.DataCenterEndpoint.DAL05,false);

After creating a client you have to call client.Authenticate() to authenticate the client, it will provide a API Token and this API token will be used in consecutive call.

Creates a new queue

var queue = new mq.Queue("testQueue1",100,5000,["testTags"]);

client.CreateQueue(queue,function(statusCode,result)
	{
		console.log(statusCode);
		console.log(result);
	});

Pushes a message to a queue

var message  = new mq.Message("<body>",{"field": "value"},1000,30000);

client.PushMessage("testQueue1",message, function (statusCode,result) 
	{
        console.log(statusCode);
        console.log(result);
    })

Pops messages from a queue

client.PopMessage("testQueue1",1, function (statusCode,result) 
	 {
	     console.log(statusCode);
	     console.log(result);
     })

Get details of a queue

client.GetQueue("testQueue1",function(statusCode,queueDetails)
	 {
     	console.log(queueDetails)
     });

Lists all queues

client.GetQueueList(function(statusCode,queueList)
	{
        console.log(queueList)
    })

Lists all queues By Tag

client.GetQueueListByTag("tag2,testTags",function(statusCode,result)
	{
        console.log(result)
    })

Deletes a message from a queue

client.DeleteMessage("testQueue1","f3f2ebacfbd3b67a430943972c4966eb", function (statusCode,result) 
	{
	     console.log(statusCode);
	     console.log(result);
	})

Modify a queue

 client.GetQueue("testQueue1",function(statusCode,queueDetails){
         queueDetails.visibility_interval = 123;
         queueDetails.expiration = 321;
         queueDetails.tags.push('tag5');
         queueDetails.tags.pop();

client.ModifyQueue(queueDetails,function(statusCode,result){
         console.log(statusCode);
         console.log(result);
         });
     })

Deletes a queue

client.DeleteQueue("testQueue1",true,function(statusCode,result)
	 {
	     console.log(statusCode);
	     console.log(result);
     })

Creates a new topic

var topic  = new mq.Topic('example_topic',["tag1", "tag2", "tag3"])

client.CreateTopic(topic, function (statusCode, result){
        console.log(statusCode);
        console.log(result);
    })

Adds a subscription to a topic

//For Http Topic Subscription

var httpTopicSubscription = new mq.HttpTopicSubscription(mq.
HttpTopicSubscriptionMethod.Get,"url","param","headers","body");

client.CreateTopicSubscription("example_topic", httpTopicSubscription,function (statusCode, result) {
        console.log(JSON.stringify(result));
    })

//For Queue Topic Subscription

var queueTopicSubscription = new mq.QueueTopicSubscription("test_Queue");

client.CreateTopicSubscription("example_topic_queue", queueTopicSubscription,function (statusCode, result) {
        console.log(JSON.stringify(result));
    })

Pushes a message to a topic

var message  = new mq.Message("<body>",{"field": "value"},1000,30000);

client.PublishToTopic("example_topic", message,function (statusCode, result) {
        console.log(JSON.stringify(result));
    })

Lists all topics

client.GetTopicList(function (statusCode, result) {
        console.log(statusCode);
        console.log(result);
    })

Lists all topics By Tag

client.GetTopicListByTag("tag2,testTags",function (statusCode, result) {
        console.log(statusCode);
        console.log(result);
    })

Get details of a topic

client.GetTopic("example_topic",function (statusCode, result) {
        console.log(statusCode);
        console.log(result);
    })

Lists subscriptions on a topic

client.GetTopicSubscriptionList(("example_topic",function (statusCode, result) {
    console.log(statusCode);
    console.log(result);
})

Deletes a subscription

client.DeleteTopicSubscription(("example_topic","subscriptionID",function (statusCode, result) {
        console.log(statusCode);
        console.log(result);
    })

Modify a topic

client.GetTopic("testQueue1",function(statusCode,topicDetails){
        topicDetails.tags.pop()

client.ModifyTopic(topicDetails,function(statusCode,result){
            console.log(statusCode);
            console.log(result);
        });
    })

Deletes a topic

client.DeleteTopic("testQueue1",true,function(statusCode,topicDetails){
            console.log(statusCode);
            console.log(result);
        });

Authenticate and receive an auth token

client.Authenticate(function(statusCode,accessToken)
	{
		console.log(statusCode);
        console.log(result);
    })

Show Requests/Notifications made for the current account

Available AccountStatsDurationType : Past_Hour,Past_Day,Past_Week,Past_Month

client.GetAccountStatistics(mq.AccountStatsDurationType.Past_Hour,function(statusCode,result)
	{
        console.log(JSON.stringify(result));
    })

Ping the service

   
mq.Ping(function (statusCode, result)
    {
        console.log(statusCode);
        console.log(result);
    })

Error Handling

Every method returns HTTP StatusCode alongwith data. so you can easily use statusCode to handle the error.