trello-bridge
v3.0.0
Published
Dead simple wrapper to interface with the Trello API
Downloads
15
Readme
trello-bridge
trello-bridge is a tiny Node module to interface with the Trello API (for Node 4+)
So small that maybe it shouldn't even be a module :)
Wherefore?
All of the other Trello <-> Node modules that I came across were overcomplicated - not only do I need to keep in mind the Trello API, but now also the module's own API.
Instead, this module, given your Trello key and token, returns a new function that accepts a resource and query parameters. The Trello API is, again, straightforward enough to not need anything more, and using this way, custom methods can be easily composed.
Install
npm install trello-bridge
And then you will need:
- Trello key - https://trello.com/1/appKey/generate
- Trello token - Vist
https://trello.com/1/authorize?key=<YOUR_PUBLIC_API_KEY>&name=<YOUR_APPLICATION_NAME>&expiration=never&scope=read,write&response_type=token
- and authorize your application and save down the returned token
Usage/API
Given your Trello key and token...
const trello = require('trello-bridge')(TRELLO_KEY, TRELLO_TOKEN);
...the module returns a new function that expects
- a resource string e.g.
'/boards'
- an optional params object e.g.
{ card_fields: 'badges,due,subscribed' }
- an optional method string, the default is
'get'
- an optional body (for
'put'
and'post'
)
And returns a Promise:
trello(resource, params, method, body).then(res => ...)
More Examples
const boardId = '123abc';
trello(`/boards/${boardId}`, {
lists: 'open',
list_fields: 'name',
fields: 'name,desc'
})
.then(response => {
console.log(response)
})
.catch(error => {
console.log(error)
})
This lends to composing functions which are after custom data very easily:
const id = '5241ca4541f5dafeca7402ce';
const specialBoard = (prop, queries) => trello(`/boards/${id}/${prop}`, queries);
specialBoard('lists')
.then(response => {
// Do something with the lists from 'special board'
})
specialBoard('cards', { actions: 'createCard' })
.then(response => {
// Filter for cards on 'special board' that were created sooner than 10 days ago
return response.filter(card => {
return parseInt(moment().diff(moment(card.actions[0].date), 'days'), 10) <= 10;
});
})