softlayer-messsage-queue

1.0.0 • Public • Published

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.

Package Sidebar

Install

npm i softlayer-messsage-queue

Weekly Downloads

1

Version

1.0.0

License

MIT

Last publish

Collaborators

  • ankit.sarkar