Skip to content

flowfast/leankit-node-client

 
 

Repository files navigation

LeanKit Node Client

The LeanKit client module for Node.js provides an easy-to-use set of functions designed to simplify the integration of external systems and utilities with your LeanKit account. The client supports both callbacks and promises. There is also a LeanKitEvents module for subscribing to board events.

Requirements

Installing the client

npm install leankit-client

Client usage (callbacks)

var LeanKitClient = require( "leankit-client" );
var client = new LeanKitClient( "account-name", "[email protected]", "your-p@ssw0rd" );

client.getBoards( function( err, boards ) {
	console.log( boards );
} );

Client usage (promises)

var LeanKitClient = require( "leankit-client" );
var client = new LeanKitClient( "account-name", "[email protected]", "your-p@ssw0rd" );

client.getBoards().then( function( boards ) {
	console.log( boards );
}, function( err ) {
	console.log( "ERR:", err );
} );

Review the tests for a full list of client functions and how to use them.

Subscribe to events

The LeanKit Client includes a module for monitoring a board for events, such as when cards are created, moved, assigned, and so forth.

Events usage

var LeanKitEvents = require( "leankit-client/events" );
var events = new LeanKitEvents( client, boardId [, version] [, pollInterval] );
events.on( "event-name", function( e ) {
	// Do something with the event
} );
events.start();

Constructor options

Parameter Description
client An instance of the LeanKitClient.
boardId The ID of the LeanKit Board to subscribe to.
version Optional Board version number. If events have occurred since the given version, those will be returned immediately.
pollInterval Optional polling interval in seconds. The default is 30 seconds.

Sample

var LeanKitClient = require( "leankit-client" );
var LeanKitEvents = require( "leankit-client/events" );
var client = new LeanKitClient( "account-name", "[email protected]", "your-p@ssw0rd" );
var boardId = 445566789; // The board ID to subscribe to
var events = new LeanKitEvents( client, boardId );
events.on( "card-creation", function( e ) {
	console.log( e );
} );
events.start();

Sample output when a card is added to the subscribed board:

{ cardId: 123456789,
  eventType: 'card-creation',
  eventDateTime: '11/06/2015 03:38:05 PM',
  message: 'David Neal created the Card [Sample Card 1] within Lane [ToDo].',
  toLaneId: 456789123,
  fromLaneId: null,
  requiresBoardRefresh: false,
  isBlocked: false,
  blockedComment: null,
  userId: 62984826,
  assignedUserId: 0,
  isUnassigning: false,
  commentText: null,
  wipOverrideComment: null,
  wipOverrideLane: 0,
  wipOverrideUser: 0,
  taskboardParentCardId: 0,
  taskboardId: 0,
  boardVersion: 2 }

Card events

Event Description
card-creation Occurs when a new card is added to a board.
card-move Occurs when a card is moved on the board.
card-fields-changed Occurs when a card's fields are modified (e.g. Title, Description, and so forth)
comment-post Occurs when a user posts a comment on a card.
user-assignment Occurs when users are assigned or unassigned from a card. Check the isUnassigning property to know whether the user is being assigned or unassigned.
attachment-change Occurs when an attachment is added to a card.
card-blocked Occurs when a card is blocked or unblocked. Check the isBlocked property to know whether the card was blocked or unblocked.
card-move-from-board Occurs when a card is moved from the board being monitored to another board.
card-move-to-board Occurs when a card is moved from another board to the board being monitored.
card-deleted Occurs when a card is deleted.

Board events

Event Description
board-edit Occurs when the board layout/structure is modified.
activity-types-changed Occurs when custom icons are modified.
board-card-types-changed Occurs when card types for the board are modified.

Proxy support

To use the LeanKit client behind a proxy server, pass an options object to the module constructor that includes the proxy server. For example:

var LeanKitClient = require("leankit-client");
var client = LeanKitClient.createClient("account-name", "[email protected]", "your-p@ssw0rd", { "proxy": "http://localproxy.com" } );

This options object is the same object used by the request module.

Installing manually

  • Install babel

  • Clone or download the leankit-node-client Github repository.

  • Open a Terminal window, change to the repository folder, and install dependent packages.

     npm install
    
  • Create a folder in your node application's node_modules folder named leankit-client (e.g. `[project-name]/node_modules/leankit-client).

  • Copy all the files and folders in the leankit-node-client folder to the leankit-client folder created in the previous step.

Running tests

  • Set environment variables for the LeanKit account you wish to test with.

    OSX/Linux

     export LEANKIT_ACCOUNT=your-account-name
     export [email protected]
     export LEANKIT_PASSWORD=your-p@ssw0rd
     export LEANKIT_TEST_BOARD=name-of-your-test-board
    

    Windows

     setx LEANKIT_ACCOUNT "your-account-name"
     setx LEANKIT_EMAIL "[email protected]"
     setx LEANKIT_PASSWORD "your-p@ssw0rd"
     setx LEANKIT_TEST_BOARD "name-of-your-test-board"
    

    Note: On Windows, you will need to reopen your command prompt after setting environment variables.

  • Install Mocha

     npm install -g mocha
    
  • Open Terminal and change to the LeanKit Node Client directory

  • Run tests

     npm test
    

Questions?

Visit support.leankit.com.

License

The LeanKit Node Client is licensed under MIT. Refer to license.txt for more information.

Packages

No packages published

Languages

  • JavaScript 100.0%