node-sparky

Spark SDK for NodeJS

Usage no npm install needed!

<script type="module">
  import nodeSparky from 'https://cdn.skypack.dev/node-sparky';
</script>

README

node-sparky

NPM

Cisco Spark SDK for Node JS (Version 3)

var Spark = require('node-sparky');

var spark = new Spark({ token: '<my token>' });

spark.roomsGet(10)
  .then(function(rooms) {
    // process rooms as array
    rooms.forEach(function(room) {
      console.log(room.title);
    });
  })
  .catch(function(err) {
    // process error
    console.log(err);
  });

If you are coming from using node-sparky version 2.x or earlier, note that the architecture, commands, and some variable names have changed. While this release is similar to previous versions, there are some major differences. Please read the API docs below before migrating your code to this release. If you are looking for the old release version, node-sparky@2.0.27 is still available to be installed through NPM.

Features

  • Built in rate limiter and outbound queue that allows control over the number of parallel API calls and the minimum time between each call.
  • Transparently handles 429 (and/or other customizable) http errors and re-queues those requests.
  • File processor for retrieving attachments from room.
  • Event emitters tied to request, response, error, retry, and queue drops.
  • Returns promises that comply with A+ standards..
  • Handles pagination transparently. (Receive unlimited records)
  • (new) Support for Spark API Advanced Webhooks
  • (new) Support Teams API
  • (new) Support for markdown formatted messages
  • (new) Support for authenticated HMAC-SHA1 webhooks

Installation

This module can be installed via NPM:

npm install node-sparky --save

Reference

Initialization and Configuration

var Spark = require('node-sparky');

var spark = new Spark({
  token: 'mytoken',
  webhookUrl: 'http://mywebhook.url/path',
});

Classes

Spark

Objects

Room : object

Room Object

Person : object

Person Object

Message : object

Message Object

File : object

File Object

Team : object

Team Object

TeamMembership : object

Team Membership Object

Membership : object

Membership Object

Webhook : object

Webhook Object

Validator : object

Spark Validation functions.

Events

"drop"

Spark Queue Drop Event.

"request"

Spark request event.

"reponse"

Spark response event.

"retry"

Spark retry event.

Spark

Kind: global class
Throw: Error Throws on spark token missing in options object.

new Spark(options)

Creates a Spark API instance that is then attached to a Spark Account.

Param Type Description
options Object Configuration object containing Spark settings

spark.options : object

Options Object

Kind: instance namespace of Spark
Properties

Name Type Default Description
token string Spark Token.
webhookUrl string URL that is used for SPark API to send callbacks.
webhookSecret string If specified, creates webhooks using this secret. The incoming webhook must still be authenticated. See Spark.webhookAuth().
maxPageItems number 50 Max results that the paginator uses.
maxConcurrent number 3 Max concurrent sessions to the Spark API
minTime number 600 Min time between consecutive request starts.
requeueMinTime number minTime*10 Min time between consecutive request starts of requests that have been re-queued.
requeueMaxRetry number 3 Msx number of atteempts to make for failed request.
requeueCodes array [429,500,503] Array of http result codes that should be retried.
requestTimeout number 20000 Timeout for an individual request recieving a response.
queueSize number 10000 Size of the buffer that holds outbound requests.
requeueSize number 10000 Size of the buffer that holds outbound re-queue requests.

spark.roomsGet([max]) ⇒ Promise.<Array>

Return all Spark Rooms registered to account.

Kind: instance method of Spark

Param Type Description
[max] Integer Number of records to return

Example

spark.roomsGet(10)
  .then(function(rooms) {
    // process rooms as array
    rooms.forEach(function(room) {
      console.log(room.title);
    });
  })
  .catch(function(err) {
    // process error
    console.log(err);
  });

spark.roomsDirect([max]) ⇒ Promise.<Array>

Return all Spark 1:1 Rooms.

Kind: instance method of Spark

Param Type Description
[max] Integer Number of records to return

Example

spark.roomsDirect(10)
  .then(function(rooms) {
    // process rooms as array
    rooms.forEach(function(room) {
      console.log(room.title);
    });
  })
  .catch(function(err) {
    // process error
    console.log(err);
  });

spark.roomsGroup([max]) ⇒ Promise.<Array>

Return all Spark Group Rooms.

Kind: instance method of Spark

Param Type Description
[max] Integer Number of records to return

Example

spark.roomsGroup(10)
  .then(function(rooms) {
    // process rooms as array
    rooms.forEach(function(room) {
      console.log(room.title);
    });
  })
  .catch(function(err) {
    // process error
    console.log(err);
  });

spark.roomsByTeam(teamId, [max]) ⇒ Promise.<Array>

Return all Spark Rooms for a particular Team ID.

Kind: instance method of Spark

Param Type Description
teamId String The Spark Team ID
[max] Integer Number of records to return

Example

spark.roomsByTeam('Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u', 10)
  .then(function(rooms) {
    // process rooms as array
    rooms.forEach(function(room) {
      console.log(room.title);
    });
  })
  .catch(function(err) {
    // process error
    console.log(err);
  });

spark.roomGet(roomId) ⇒ Promise.<Room>

Return details of Spark Room by ID.

Kind: instance method of Spark

Param Type Description
roomId String Spark Room ID

Example

spark.roomGet('Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u')
  .then(function(room) {
    console.log(room.title);
  })
  .catch(function(err) {
    // process error
    console.log(err);
  });

spark.roomAdd(title) ⇒ Promise.<Room>

Add new Spark Room.

Kind: instance method of Spark

Param Type Description
title String Title for new Room

Example

spark.roomAdd('myroom')
  .then(function(room) {
    console.log(room.title);
  })
  .catch(function(err) {
    // process error
    console.log(err);
  });

spark.roomRename(roomId, title) ⇒ Promise.<Room>

Rename Spark Room.

Kind: instance method of Spark

Param Type Description
roomId String Spark Room ID
title String Title for new Room

Example

spark.roomRename('Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u', 'myroom2')
  .then(function(room) {
    console.log(room.title);
  })
  .catch(function(err) {
    // process error
    console.log(err);
  });

spark.roomRemove(roomId) ⇒ Promise

Remove Spark Room by ID.

Kind: instance method of Spark

Param Type Description
roomId String Spark Room ID

Example

spark.roomRemove('Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u')
  .then(function() {
    console.log('Room removed.');
  })
  .catch(function(err) {
    // process error
    console.log(err);
  });

spark.peopleSearch(displayName, [max]) ⇒ Promise.<Array>

Search Spark for People by display name.

Kind: instance method of Spark

Param Type Description
displayName String Search String to find as display name
[max] Integer Number of records to return

Example

spark.peopleSearch('John', 10)
  .then(function(people) {
    // process people as array
    people.forEach(function(person) {
      console.log(person.displayName);
    });
  })
  .catch(function(err) {
    // process error
    console.log(err);
  });

spark.personGet(personId) ⇒ Promise.<Person>

Return details of Spark User by ID.

Kind: instance method of Spark

Param Type Description
personId String Spark Person ID

Example

spark.personGet('Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u')
  .then(function(person) {
    console.log(person.displayName);
  })
  .catch(function(err) {
    // process error
    console.log(err);
  });

spark.personMe() ⇒ Promise.<Person>

Return details of Spark User that has authenticated.

Kind: instance method of Spark
Example

spark.personMe()
  .then(function(person) {
    console.log(person.displayName);
  })
  .catch(function(err) {
    // process error
    console.log(err);
  });

spark.personByEmail(email) ⇒ Promise.<Person>

Return details of Spark User by Email.

Kind: instance method of Spark

Param Type Description
email String Email address of Spark User

Example

spark.personByEmail('aperson@company.com')
  .then(function(person) {
    console.log(person.displayName);
  })
  .catch(function(err) {
    // process error
    console.log(err);
  });

spark.attachmentActionGet(attachmentActionId) ⇒ Promise.<AttachmentAction>

Return details of an attachment action by ID.

Kind: instance method of Spark
Returns: Promise.<AttachmentAction> - AttachmentAction object

Param Type Description
attachmentActionId String AttachmentAction ID

Example

spark.attachmentActionGet('Tm90aGluZyB0byBzZWUgaGVy')
  .then(attachmentAction => console.log(attachmentAction))
  .catch(err => console.error(err));

spark.attachmentActionCreate(attachmentAction) ⇒ Promise.<AttachmentAction>

Create an Attachment Action.

Kind: instance method of Spark
Returns: Promise.<AttachmentAction> - AttachmentAction object

Param Type Description
attachmentAction Object.<AttachmentAction> Attachment Action to create

Example

const newAttachmentAction = {
  type: 'submit',
  messageId: 'Tm90aGluZyB0byBzZWUgaGVy',
  "inputs": {
     "Name": "John Andersen",
     "Url": "https://example.com",
     "Email": "john.andersen@example.com",
     "Tel": "+1 408 526 7209"
    }
}

spark.attachmentActionCreate(newAttachmentAction)
  .then(attachmentAction => console.log(attachmentAction.id))
  .catch(err => console.error(err));

spark.messagesGet(roomId, [max]) ⇒ Promise.<Array>

Return messages in a Spark Room.

Kind: instance method of Spark

Param Type Description
roomId String Spark Room ID
[max] Integer Number of records to return

Example

spark.messagesGet('Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u', 100)
  .then(function(messages) {
    // process messages as array
    messages.forEach(function(message) {
      console.log(message.text);
    });
  })
  .catch(function(err) {
    // process error
    console.log(err);
  });

spark.messageGet(messageId) ⇒ Promise.<Message>

Return details of Spark Message by ID.

Kind: instance method of Spark

Param Type Description
messageId String Spark Message ID

Example

spark.messageGet('Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u', 100)
  .then(function(message) {
    console.log(message.text);
  })
  .catch(function(err) {
    // process error
    console.log(err);
  });

spark.messageSendPerson(email, message) ⇒ Promise.<Message>

Sends 1:1 Spark message to a person.

Kind: instance method of Spark

Param Type Description
email String Email address of Spark User
message Object Message Object

Example

spark.messageSendPerson('aperson@company.com', {
    text: 'Hello!',
    files: ['http://company.com/myfile.doc']
  })
  .then(function(message) {
    console.log('Message sent: %s', message.txt) ;
  })
  .catch(function(err){
    console.log(err);
  });

spark.messageSendRoom(roomId, message) ⇒ Promise.<Message>

Sends Spark message to a room.

Kind: instance method of Spark

Param Type Description
roomId String Spark Room ID
message Object Message Object

Example

spark.messageSendRoom('Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u', {
    text: 'Hello!',
    files: ['http://company.com/myfile.doc']
  })
  .then(function(message) {
    console.log('Message sent: %s', message.txt);
  })
  .catch(function(err){
    console.log(err);
  });

spark.messageStreamRoom(roomId, message) ⇒ Promise.<Message>

Streams Spark message to a room.

Kind: instance method of Spark

Param Type Description
roomId String Spark Room ID
message Object Message Object

Example

var roomId = 'Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u';
var text = 'Hello';
var filename = 'test.png';
var stream = fs.createReadStream(filename);
var message = { 'text': text, 'filename': filename, 'stream': stream };
spark.messageStreamRoom(roomId, message)
  .then(function(message) {
    console.log('Message sent: %s', message.txt);
  })
  .catch(function(err){
    console.log(err);
  });

spark.upload(roomId, filepath) ⇒ Promise.<Message>

Upload a file by path to Spark Room

Kind: instance method of Spark

Param Type Description
roomId String Spark Room ID
filepath String path to file

Example

var roomId = 'Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u';
spark.upload(roomId, '/some/local/file.png');

spark.messageRemove(messageId) ⇒ Promise

Remove Spark Message by ID.

Kind: instance method of Spark

Param Type Description
messageId String Spark Message ID

Example

spark.messageRemove('Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u')
  .then(function() {
    console.log('Message removed.');
  })
  .catch(function(err){
    console.log(err);
  });

spark.contentGet(id) ⇒ Promise.<File>

Return details of Spark File by Content ID.

Kind: instance method of Spark

Param Type Description
id String Spark Content ID

Example

spark.contentGet('Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u')
  .then(function(file) {
    console.log('File name: %s', file.name);
  })
  .catch(function(err){
    console.log(err);
  });

spark.contentByUrl(url) ⇒ Promise.<File>

Return details of Spark File by Spark Content URL.

Kind: instance method of Spark

Param Type Description
url String Spark Content URL

Example

spark.contentByUrl('http://api.ciscospark.com/v1/contents/Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u')
  .then(function(file) {
    console.log('File name: %s', file.name);
  })
  .catch(function(err){
    console.log(err);
  });

spark.teamsGet([max]) ⇒ Promise.<Array>

Return all Spark Teams registered to account.

Kind: instance method of Spark

Param Type Description
[max] Integer Number of records to return

Example

spark.teamsGet(10)
  .then(function(teams) {
    // process teams as array
    teams.forEach(function(team) {
      console.log(team.name);
    });
  })
  .catch(function(err) {
    // process error
    console.log(err);
  });

spark.teamGet(teamId) ⇒ Promise.<Team>

Return details of Spark Team by ID.

Kind: instance method of Spark

Param Type Description
teamId String Spark Team ID

Example

spark.teamGet('Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u')
  .then(function(team) {
    console.log(team.name);
  })
  .catch(function(err) {
    // process error
    console.log(err);
  });

spark.teamAdd(name) ⇒ Promise.<Team>

Add new Spark Team.

Kind: instance method of Spark

Param Type Description
name String Name for new Team

Example

spark.teamAdd('myteam')
  .then(function(team) {
    console.log(team.name);
  })
  .catch(function(err) {
    // process error
    console.log(err);
  });

spark.teamRoomAdd(teamId, title) ⇒ Promise.<Room>

Add new Spark Team Room.

Kind: instance method of Spark

Param Type Description
teamId String Spark Team ID
title String Title for new Room

Example

spark.teamRoomAdd('Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u', 'myroom')
  .then(function(room) {
    console.log(room.title);
  })
  .catch(function(err) {
    // process error
    console.log(err);
  });

spark.teamRename(teamId, name) ⇒ Promise.<Team>

Rename a Spark Team.

Kind: instance method of Spark

Param Type Description
teamId String Spark Team ID
name String Name for new Team

Example

spark.teamRename('Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u', 'myteam2')
  .then(function(team) {
    console.log(team.name);
  })
  .catch(function(err) {
    // process error
    console.log(err);
  });

spark.teamRemove(teamId) ⇒ Promise

Remove Spark Team by ID.

Kind: instance method of Spark

Param Type Description
teamId String Spark Team ID

Example

spark.teamRemove('Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u')
  .then(function() {
    console.log('Team removed.');
  })
  .catch(function(err) {
    // process error
    console.log(err);
  });

spark.teamMembershipsGet(teamId, [max]) ⇒ Promise.<Array>

Return all Spark Team Memberships for a specific Team.

Kind: instance method of Spark

Param Type Description
teamId String Spark Team ID
[max] Integer Number of records to return

Example

spark.teamMembershipsGet('Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u', 100)
  .then(function(memberships) {
    // process memberships as array
    memberships.forEach(function(membership) {
      console.log(membership.personEmail);
    });
  })
  .catch(function(err) {
    // process error
    console.log(err);
  });

spark.teamMembershipGet(membershipId) ⇒ Promise.<TeamMembership>

Return Spark Team Membership by ID.

Kind: instance method of Spark

Param Type Description
membershipId String Spark Membership ID

Example

spark.membershipGet('Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u')
  .then(function(membership) {
    console.log(membership.personEmail);
  })
  .catch(function(err){
    console.log(err);
  });

spark.teamMembershipAdd(teamId, email, moderator) ⇒ Promise.<TeamMembership>

Add new Spark Team Membership.

Kind: instance method of Spark

Param Type Description
teamId String Spark Team ID
email String Email address of person to add
moderator Boolean Boolean value to add as moderator

Example

spark.teamMembershipAdd('Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u', 'aperson@company.com')
  .then(function(membership) {
    console.log(membership.id);
  })
  .catch(function(err){
    console.log(err);
  });

spark.teamMembershipSetModerator(membershipId) ⇒ Promise.<TeamMembership>

Set a Team Membership as moderator.

Kind: instance method of Spark

Param Type Description
membershipId String Spark Membership ID

Example

spark.teamMembershipSetModerator('Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u')
  .then(function(membership) {
    console.log('%s is a moderator: %s', membership.personEmail, membership.isModerator);
  })
  .catch(function(err){
    console.log(err);
  });

spark.teamMembershipClearModerator(membershipId) ⇒ Promise.<TeamMembership>

Remove a Team Membership as moderator.

Kind: instance method of Spark

Param Type Description
membershipId String Spark Membership ID

Example

spark.teamMembershipClearModerator('Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u')
  .then(function(membership) {
    console.log('%s is a moderator: %s', membership.personEmail, membership.isModerator);
  })
  .catch(function(err){
    console.log(err);
  });

spark.teamMembershipRemove(membershipId) ⇒ Promise

Remove Spark Team Membership by ID..

Kind: instance method of Spark

Param Type Description
membershipId String Spark Membership ID

Example

spark.teamMembershipRemove('Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u')
  .then(function() {
    console.log('Membership removed');
  })
  .catch(function(err){
    console.log(err);
  });

spark.membershipsGet([max]) ⇒ Promise.<Array>

Return all Spark Memberships registered to account..

Kind: instance method of Spark

Param Type Description
[max] Integer Number of records to return

Example

spark.membershipsGet(100)
  .then(function(memberships) {
    // process memberships as array
    memberships.forEach(function(membership) {
      console.log(membership.personEmail);
    });
  })
  .catch(function(err) {
    // process error
    console.log(err);
  });

spark.membershipsByRoom(roomId, [max]) ⇒ Promise.<Array>

Return all Spark Memberships in a Spark Room..

Kind: instance method of Spark

Param Type Description
roomId String Spark Room ID
[max] Integer Number of records to return

Example

spark.membershipsByRoom('Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u', 100)
  .then(function(memberships) {
    // process memberships as array
    memberships.forEach(function(membership) {
      console.log(membership.personEmail);
    });
  })
  .catch(function(err) {
    // process error
    console.log(err);
  });

spark.membershipGet(membershipId) ⇒ Promise.<Membership>

Return Spark Membership by ID..

Kind: instance method of Spark

Param Type Description
membershipId String Spark Membership ID

Example

spark.membershipGet('Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u')
  .then(function(membership) {
    console.log(membership.personEmail);
  })
  .catch(function(err){
    console.log(err);
  });

spark.membershipByRoomByEmail(roomId, personEmail) ⇒ Promise.<Membership>

Return Spark Membership by Room and Email..

Kind: instance method of Spark

Param Type Description
roomId String Spark Membership ID
personEmail String Email of Person

Example

spark.membershipByRoomByEmail('Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u', 'aperson@company.com')
  .then(function(membership) {
    console.log(membership.id);
  })
  .catch(function(err){
    console.log(err);
  });

spark.membershipAdd(roomId, email, moderator) ⇒ Promise.<Membership>

Add new Spark Membership..

Kind: instance method of Spark

Param Type Description
roomId String Spark Room ID
email String Email address of person to add
moderator Boolean Boolean value to add as moderator

Example

spark.membershipAdd('Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u', 'aperson@company.com')
  .then(function(membership) {
    console.log(membership.id);
  })
  .catch(function(err){
    console.log(err);
  });

spark.membershipSetModerator(membershipId) ⇒ Promise.<Membership>

Set a Membership as moderator.

Kind: instance method of Spark

Param Type Description
membershipId String Spark Membership ID

Example

spark.membershipSetModerator('Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u')
  .then(function(membership) {
    console.log('%s is a moderator: %s', membership.personEmail, membership.isModerator);
  })
  .catch(function(err){
    console.log(err);
  });

spark.membershipClearModerator(membershipId) ⇒ Promise.<Membership>

Remove a Membership as moderator.

Kind: instance method of Spark

Param Type Description
membershipId String Spark Membership ID

Example

spark.membershipClearModerator('Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u')
  .then(function(membership) {
    console.log('%s is a moderator: %s', membership.personEmail, membership.isModerator);
  })
  .catch(function(err){
    console.log(err);
  });

spark.membershipRemove(membershipId) ⇒ Promise

Remove Spark Membership by ID.

Kind: instance method of Spark

Param Type Description
membershipId String Spark Membership ID

Example

spark.membershipRemove('Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u')
  .then(function() {
    console.log('Membership removed');
  })
  .catch(function(err){
    console.log(err);
  });

spark.webhooksGet([max]) ⇒ Promise.<Array>

Return all Spark Webhooks registered to account.

Kind: instance method of Spark

Param Type Description
[max] Integer Number of records to return

Example

spark.webhooksGet(100)
  .then(function(webhooks) {
    // process webhooks as array
    webhooks.forEach(function(webhook) {
      console.log(webhook.name);
    });
  })
  .catch(function(err) {
    // process error
    console.log(err);
  });

spark.webhookGet(webhookId) ⇒ Promise.<Webhook>

Return details of Spark Webhook by ID.

Kind: instance method of Spark

Param Type Description
webhookId String Spark Webhook ID

Example

spark.webhookGet('Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u')
  .then(function(webhook) {
    console.log(webhook.name);
  })
  .catch(function(err) {
    // process error
    console.log(err);
  });

spark.webhookAdd(resource, event, name, [filter]) ⇒ Promise.<Webhook>

Add new Spark Webhook.

Kind: instance method of Spark

Param Type Description
resource String Resource for webhook
event String Event for webhook
name String Name assigned to webhook to add
[filter] String filter

Example

spark.webhookAdd('messages', 'created', 'mywebhook', 'Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u')
  .then(function(webhook) {
    console.log(webhook.name);
  })
  .catch(function(err) {
    // process error
    console.log(err);
  });

spark.webhookRemove(webhookId) ⇒ Promise

Remove Spark Webhook by ID.

Kind: instance method of Spark

Param Type Description
webhookId String Spark Webhook ID.

Example

spark.webhookRemove('Tm90aGluZyB0byBzZWUgaGVyZS4uLiBNb3ZlIGFsb25nLi4u')
  .then(function() {
    console.log('Webhook removed');
  })
  .catch(function(err){
    console.log(err);
  });

spark.webhookAuth(signature, payload) ⇒ Boolen

Authenticate X-Spark-Signature HMAC-SHA1 Hash.

Kind: instance method of Spark

Param Type Description
signature String Value of "X-Spark-Signature" from header
payload String | Object This can either be the json object or a string representation of the webhook's body json payload

Example

var sig = req.headers['x-spark-signature'];
if(spark.webhookAuth(sig, req.body)) {
  // webhook is valid
} else {
  // webhook is invalid
}

Room : object

Room Object

Kind: global namespace
Properties

Name Type Description
id string Room ID
title string Room Title
type string Room Type
isLocked boolean Room Moderated/Locked
teamId string Team ID
lastActivity date Last Activity in Room
created date Room Created

Person : object

Person Object

Kind: global namespace
Properties

Name Type Description
id string Person ID
emails array Emails
displayName string Display Name
avatar string Avatar URL
created date Date created
email string Email
username string Username
domain string Domain name

Message : object

Message Object

Kind: global namespace
Properties

Name Type Description
id string Message ID
personId string Person ID
personEmail string Person Email
roomId string Room ID
text string Message text
files array Array of File objects
created date Date Message created

File : object

File Object

Kind: global namespace
Properties

Name Type Description
id string Spark API Content ID
name string File name
ext string File extension
type string Header [content-type] for file
binary buffer File contents as binary
base64 string File contents as base64 encoded string

Team : object

Team Object

Kind: global namespace
Properties

Name Type Description
id string Message ID
name string Team name
created date Date Team created

TeamMembership : object

Team Membership Object

Kind: global namespace
Properties

Name Type Description
id string Membership ID
teamId string Team ID
personId string Person ID
personEmail string Person Email
isModerator boolean Membership is a moderator
created date Date Membership created

Membership : object

Membership Object

Kind: global namespace
Properties

Name Type Description
id string Membership ID
personId string Person ID
personEmail string Person Email
isModerator boolean Membership is a moderator
isMonitor boolean Membership is a monitor
created date Date Membership created

Webhook : object

Webhook Object

Kind: global namespace
Properties

Name Type Description
id string Webhook ID
name string Webhook name
targetUrl string Webhook target URL
resource boolean Webhook resource
event boolean Webhook event
filter boolean Webhook filter
created date Date Webhook created

Validator : object

Spark Validation functions.

Kind: global namespace

Validator.isEmail(email) ⇒ Boolean

Validate String is Email.

Kind: static method of Validator

Param Type
email String

Validator.isUrl(url) ⇒ Boolean

Validate String is URL.

Kind: static method of Validator

Param Type
url String

Validator.isFilePath(path) ⇒ Boolean

Validate String is File path.

Kind: static method of Validator

Param Type
path String

Validator.isRoom(object) ⇒ Boolean

Validate Spark Room Object.

Kind: static method of Validator

Param Type
object Room

Validator.isPerson(object) ⇒ Boolean

Validate Spark Person Object.

Kind: static method of Validator

Param Type
object Room

Validator.isMessage(object) ⇒ Boolean

Validate Spark Message Object.

Kind: static method of Validator

Param Type
object Message

Validator.isMembership(object) ⇒ Boolean

Validate Spark Membership Object.

Kind: static method of Validator

Param Type
object Membership

Validator.isWebhook(object) ⇒ Boolean

Validate Spark Webhook Object.

Kind: static method of Validator

Param Type
object Webhook

Validator.isTeam(object) ⇒ Boolean

Validate Spark Team Object.

Kind: static method of Validator

Param Type
object Team

Validator.isRooms(rooms) ⇒ Boolean

Validate Spark Room Objects in Array.

Kind: static method of Validator

Param Type
rooms Array

Validator.isPeople(persons) ⇒ Boolean

Validate Spark Person Objects in Array.

Kind: static method of Validator

Param Type
persons Array

Validator.isMessages(messages) ⇒ Boolean

Validate Spark Message Objects in Array.

Kind: static method of Validator

Param Type
messages Array

Validator.isMemberships(memberships) ⇒ Boolean

Validate Spark Membership Objects in Array.

Kind: static method of Validator

Param Type
memberships Array

Validator.isWebhooks(webhooks) ⇒ Boolean

Validate Spark Webhook Objects in Array.

Kind: static method of Validator

Param Type
webhooks Array

Validator.isTeams(teams) ⇒ Boolean

Validate Spark Team Objects in Array.

Kind: static method of Validator

Param Type
teams Array

"drop"

Spark Queue Drop Event.

Kind: event emitted
Properties

Name Type Description
request options API Request
id string Spark UUID

"request"

Spark request event.

Kind: event emitted
Properties

Name Type Description
request options API Request
id string Spark UUID

"reponse"

Spark response event.

Kind: event emitted
Properties

Name Type Description
response options Response
id string Spark UUID

"retry"

Spark retry event.

Kind: event emitted
Properties

Name Type Description
request options API Request
id string Spark UUID

License

The MIT License (MIT)

Copyright (c) 2016-2017

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.