# btrz-sqs 

A simple client to send messages to an AWS SQS queue with a very convenient interface.

It uses native Promises

## Runtimes supported

io.js >= 1.0.3
node v0.11.x with the --harmony flag

## Usage

Add the module to your `package.json` directly or just run

    npm install btrz-sqs --save

Require and use the `Queue` object to create and send messages to a queue.

    let Queue = require("btrz-sqs").Queue;
    let q = new Queue(config, queueName);

    let obj = {text: "An object to send as a message", email: "email@example.com"};

    // This creates a message that SQS will be able to work with.
    let msg = Queue.createMessage("theId", obj);

    // Now we can send the message
    var promise = q.send([msg]);

    // Send returns a Promise so we can work with it normally.
    promise.then(function (result) {
        // Do something with the result
    })
    .catch(function (err) {
        // Do something with the error
    });


### Config object


    config =  {
      key: process.env.AWS_KEY,
      secret: process.env.AWS_SECRET,
      sqs: {
        dataImport: {
          queueUrl: process.env.AWS_SQS_URL,
          region: "us-east-1"
        }
      }
    };


The sqs object in the config can have multiple queues, in the constructor you indicate what queue to use given a string that is the key in the `config.sqs` object. In this case is `dataImport`

    new Queue(config, "dataImport");


#### .createMessage

The static `.createMessage` method takes an id and some object or primitive to use as the message.
Objects will be serialize with `JSON.stringify`

#### .send

The instance `.send` method takes an array of messages to send to the queue.
It returns a native Promise
