Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bhushankummar/trello-node-api
Trello NodeJS Wrapper
https://github.com/bhushankummar/trello-node-api
trello trello-api trello-board trello-card trello-node trello-typescript
Last synced: 11 days ago
JSON representation
Trello NodeJS Wrapper
- Host: GitHub
- URL: https://github.com/bhushankummar/trello-node-api
- Owner: bhushankummar
- License: mit
- Created: 2017-10-14T17:24:33.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2021-01-12T09:09:28.000Z (almost 4 years ago)
- Last Synced: 2024-10-08T14:02:24.864Z (about 1 month ago)
- Topics: trello, trello-api, trello-board, trello-card, trello-node, trello-typescript
- Language: JavaScript
- Homepage:
- Size: 94.7 KB
- Stars: 42
- Watchers: 4
- Forks: 25
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# trello-node-api (Trello REST API)
[![Version](https://img.shields.io/npm/v/trello-node-api.svg)](https://www.npmjs.org/package/trello-node-api)
[![Build Status](https://travis-ci.org/bhushankumarl/trello-node-api.svg?branch=master)](https://travis-ci.org/bhushankumarl/trello-node-api)This API supported Trello's standard REST-style API that accepts/returns JSON requests and Here is the [API reference] (https://developers.trello.com/v1.0/reference)
You can find [examples here](https://github.com/bhushankumarl/trello-node-api/tree/master/examples). This will help you for faster implmentation of Trello's.
##### It does supports EcmaScript 5, EcmaScript 6, EcmaScript 8, TypeScript, async-await, Promises, Callback !
##### It does also supports for AWS Lambda like serverless cloud function call.
##### It supports pure JSON response.
##### All methods support Promise and Callback both.
##### Please Feel free to create Issue for any help !
##### All developers/contributors are requested to open Pull Request/Merge Request on development branch. Please make sure Test Cases be passed.## Installation
```bash
npm install trello-node-api --save
```## Debugging
```bash
export DEBUG=TA:*
```## Configuration
Set your API Key and Secret/Oauth Token.
```js
var trelloNode = require('trello-node-api')(apiKey, oauthToken);
```## Configuration Using TypeScript
```typescript
import * as TrelloNodeAPI from 'trello-node-api';const trello = new TrelloNodeAPI();
trello.setApiKey('apiKey');
trello.setOauthToken('oauthToken');
```## Pull Request
- Contributors can send their Pull Request to `development` branch.
- Kindly validate test cases & linting before opening new PR.## Do you need an expert?
Are you finding a developer for your world-class product? If yes, please contact here. [Submit your project request here.](https://goo.gl/forms/UofdG5GY5iHMoUWg2)
Originally by [Bhushankumar L](mailto:[email protected]).## Examples
#### [Actions](https://github.com/bhushankumarl/trello-node-api/wiki/Actions-TypeScript)
#### [Boards](https://github.com/bhushankumarl/trello-node-api/wiki/Boards-TypeScript)
#### [Cards](https://github.com/bhushankumarl/trello-node-api/wiki/Cards-TypeScript)
#### [Checklists](https://github.com/bhushankumarl/trello-node-api/wiki/Checklists-TypeScript)
#### [Enterprises](https://github.com/bhushankumarl/trello-node-api/wiki/Enterprises-TypeScript)
#### [Labels](https://github.com/bhushankumarl/trello-node-api/wiki/Labels-TypeScript)
#### [Lists](https://github.com/bhushankumarl/trello-node-api/wiki/Lists-TypeScript)
#### [Members](https://github.com/bhushankumarl/trello-node-api/wiki/Members-TypeScript)
#### [Notifications](https://github.com/bhushankumarl/trello-node-api/wiki/Notifications-TypeScript)
#### [Organizations](https://github.com/bhushankumarl/trello-node-api/wiki/Organizations-TypeScript)
#### [Webhooks](https://github.com/bhushankumarl/trello-node-api/wiki/Webhooks-TypeScript)
### Actions
#### Delete Action
```
Trello.action.del('ACTION_ID').then(function (response) {
console.log('response ', response);
}).catch(function (error) {
console.log('error', error);
});
```#### Search Action
```
Trello.action.search('ACTION_ID').then(function (response) {
console.log('response ', response);
}).catch(function (error) {
console.log('error', error);
});
```#### Search Field Action
```
Trello.action.searchField('ACTION_ID', 'FIELD_NAME').then(function (response) {
console.log('response ', response);
}).catch(function (error) {
console.log('error', error);
});
```#### Update Action
```
var id = 'ACTION_ID'; // REQUIRED
var data = {
text: 'TEXT' // REQUIRED
};
Trello.action.update(id, data).then(function (response) {
console.log('response ', response);
}).catch(function (error) {
console.log('error', error);
});
```### Boards
#### Create Board
```
var data = {
name: 'BOARD_NAME', // REQUIRED
defaultLabels: false,
defaultLists: false,
desc: 'Board description.',
idOrganization: 'ORGANIZATION_ID',
idBoardSource: 'BOARD_ID',
keepFromSource: 'none',
powerUps: 'all',
prefs_permissionLevel: 'private',
prefs_voting: 'disabled',
prefs_comments: 'members',
prefs_invitations: 'members',
prefs_selfJoin: true,
prefs_cardCovers: true,
prefs_background: 'blue',
prefs_cardAging: 'regular'
};
Trello.board.create(data).then(function (response) {
console.log('response ', response);
}).catch(function (error) {
console.log('error', error);
});
```#### Delete Board
```
Trello.board.del('BOARD_ID').then(function (response) {
console.log('response ', response);
}).catch(function (error) {
console.log('error', error);
});
```#### Search Board
```
Trello.board.search('BOARD_ID').then(function (response) {
console.log('response ', response);
}).catch(function (error) {
console.log('error', error);
});
```#### Search Board Cards
```
Trello.board.searchCards('BOARD_ID').then(function (response) {
console.log('response ', response);
}).catch(function (error) {
console.log('error', error);
});
```#### Search Board Field
```
var boardId = 'BOARD_ID';
var field = 'shortUrl';
Trello.board.searchField(boardId, field).then(function (response) {
console.log('response ', response);
}).catch(function (error) {
console.log('error', error);
});
```#### Search Board Promise
```
const promises = [];
const boardIds = ['BOARD_ID_1', 'BOARD_ID_2'];boardIds.forEach((boardId) => {
promises.push(Trello.board.search(boardId));
});try {
const boards = await Promise.all(promises);
console.log('boards ', boards);
} catch (error) {
console.error('[trello]', error);
}
```#### Search Board With Filter
```
var boardId = 'BOARD_ID';
var fields = {
actions: 'all'
};
Trello.board.search(boardId, fields).then(function (response) {
console.log('response ', response);
}).catch(function (error) {
console.log('error', error);
});
```#### Search Cards
```
Trello.board.searchCards('BOARD_ID').then(function (response) {
console.log('response ', response);
}).catch(function (error) {
console.log('error', error);
});
```#### Search Closed Cards
```
Trello.board.searchCardsFilter('BOARD_ID', 'closed').then(function (response) {
console.log('response ', response);
}).catch(function (error) {
console.log('error', error);
});
```#### Search Field Board
```
Trello.board.searchField('BOARD_ID', 'FIELD_NAME').then(function (response) {
console.log('response ', response);
}).catch(function (error) {
console.log('error', error);
});
```#### Update Board
```
var id = 'BOARD_ID'; // REQUIRED
var data = {
name: 'BOARD',
desc: 'Board descriptions',
closed: false,
subscribed: false,
idOrganization: 'ORGANIZATION_ID',
prefs_permissionLevel: 'private',
prefs_selfJoin: true,
prefs_cardCovers: true,
prefs_invitations: 'members',
prefs_voting: 'disabled',
prefs_comments: 'members',
prefs_background: 'blue',
prefs_cardAging: 'regular',
prefs_calendarFeedEnabled: false,
labelNames_green: 'Test Label 1',
labelNames_yellow: 'Test Label 2',
labelNames_orange: 'Test Label 3',
labelNames_red: 'Test Label 4',
labelNames_purple: 'Test Label 5',
labelNames_blue: 'Test Label 6'
};
Trello.board.update(id, data).then(function (response) {
console.log('response ', response);
}).catch(function (error) {
console.log('error', error);
});
```### Cards
#### Create Card
```
var data = {
name: 'CARD_NAME',
desc: 'Card description',
pos: 'top',
idList: 'LIST_ID', //REQUIRED
due: null,
dueComplete: false,
idMembers: ['MEMBER_ID', 'MEMBER_ID', 'MEMBER_ID'],
idLabels: ['LABEL_ID', 'LABEL_ID', 'LABEL_ID'],
urlSource: 'https://example.com',
fileSource: 'file',
idCardSource: 'CARD_ID',
keepFromSource: 'attachments,checklists,comments,due,labels,members,stickers'
};
Trello.card.create(data).then(function (response) {
console.log('response ', response);
}).catch(function (error) {
console.log('error', error);
});
```#### Delete Card
```
Trello.card.del('CARD_ID').then(function (response) {
console.log('response ', response);
}).catch(function (error) {
console.log('error', error);
});
```#### Search Card
```
Trello.card.search('CARD_ID').then(function (response) {
console.log('response ', response);
}).catch(function (error) {
console.log('error', error);
});
```#### Search Field Card
```
Trello.card.searchField('CARD_ID', 'FIELD_NAME').then(function (response) {
console.log('response ', response);
}).catch(function (error) {
console.log('error', error);
});
```#### Update Card
```
var id = 'CARD_ID'; // REQUIRED
var data = {
name: 'CARD_NAME_TEST',
desc: 'Card description',
closed: false,
idMembers: 'MEMBER_ID,MEMBER_ID,MEMBER_ID',
idAttachmentCover: null,
idList: 'LIST_ID',
idLabels: 'LABEL_ID, LABEL_ID, LABEL_ID',
idBoard: false,
pos: 'top',
due: null,
dueComplete: false,
subscribed: false
};
Trello.card.update(id, data).then(function (response) {
console.log('response ', response);
}).catch(function (error) {
console.log('error', error);
});
```### Checklists
#### Create Checklist
```
var data = {
idCard: 'CARD_ID', // REQUIRED
name: 'CHECKLIST_NAME',
pos: 1
};
Trello.checklist.create(data).then(function (response) {
console.log('response ', response);
}).catch(function (error) {
console.log('error', error);
});
```#### Delete Checklist
```
Trello.checklist.del('CHECKLIST_ID').then(function (response) {
console.log('response ', response);
}).catch(function (error) {
console.log('error', error);
});
```#### Search Checklist
```
Trello.checklist.search('CHECKLIST_ID').then(function (response) {
console.log('response ', response);
}).catch(function (error) {
console.log('error', error);
});
```#### Search Field Checklist
```
Trello.checklist.searchField('CHECKLIST_ID', 'FIELD_NAME').then(function (response) {
console.log('response ', response);
}).catch(function (error) {
console.log('error', error);
});
```#### Update Checklist
```
var id = 'CHECKLIST_ID'; // REQUIRED
var data = {
name: 'CHECKLIST_NAME',
pos: 'top'
};
Trello.checklist.update(id, data).then(function (response) {
console.log('response ', response);
}).catch(function (error) {
console.log('error', error);
});
```### Enterprises
#### Search Enterprises
```
Trello.enterprise.search('ENTERPRISE_ID').then(function (response) {
console.log('response ', response);
}).catch(function (error) {
console.log('error', error);
});
```### Labels
#### Create Label
```
var data = {
name: 'LABEL_NAME', // REQUIRED
color: 'orange', // REQUIRED
idBoard: 'BOARD_ID' // REQUIRED
};
Trello.label.create(data).then(function (response) {
console.log('response ', response);
}).catch(function (error) {
console.log('error', error);
});
```#### Delete Label
```
Trello.label.del('LABEL_ID').then(function (response) {
console.log('response ', response);
}).catch(function (error) {
console.log('error', error);
});
```#### Search Label
```
Trello.label.search('LABEL_ID').then(function (response) {
console.log('response ', response);
}).catch(function (error) {
console.log('error', error);
});
```#### Update Label
```
var id = 'LABEL_ID'; // REQUIRED
var data = {
name: 'NAME',
color: 'orange'
};
Trello.label.update(id, data).then(function (response) {
console.log('response ', response);
}).catch(function (error) {
console.log('error', error);
});
```### Lists
#### Create List
```
var data = {
name: 'LIST_NAME', // REQUIRED
idBoard: 'BOARD_ID', // REQUIRED
idListSource: 'LIST_ID',
pos: 'top'
};
Trello.list.create(data).then(function (response) {
console.log('response ', response);
}).catch(function (error) {
console.log('error', error);
});
```#### Search Field List
```
Trello.list.searchField('LIST_ID', 'FIELD_NAME').then(function (response) {
console.log('response ', response);
}).catch(function (error) {
console.log('error', error);
});
```#### Search List
```
Trello.list.search('LIST_ID').then(function (response) {
console.log('response ', response);
}).catch(function (error) {
console.log('error', error);
});
```#### Update List
```
var id = 'LIST_ID'; // REQUIRED
var data = {
name: 'LIST_NAME',
closed: false,
pos: 'top',
subscribed: false
};
Trello.list.update(id, data).then(function (response) {
console.log('response ', response);
}).catch(function (error) {
console.log('error', error);
});
```### Members
#### Search Field Member
```
Trello.member.searchField('MEMBER_ID', 'FIELD_NAME').then(function (response) {
console.log('response ', response);
}).catch(function (error) {
console.log('error', error);
});
```#### Search Member
```
Trello.member.search('MEMBER_ID').then(function (response) {
console.log('response ', response);
}).catch(function (error) {
console.log('error', error);
});
```#### Search Member Boards
```
Trello.member.searchBoards('me').then(function (response) {
console.log('response ', response);
}).catch(function (error) {
console.log('error', error);
});
```### Notifications
#### Search Field Notification
```
Trello.notification.searchField('NOTIFICATION_ID', 'FIELD_NAME').then(function (response) {
console.log('response ', response);
}).catch(function (error) {
console.log('error', error);
});
```#### Search Notification
```
Trello.notification.search('NOTIFICATION_ID').then(function (response) {
console.log('response ', response);
}).catch(function (error) {
console.log('error', error);
});
```#### Update Notification
```
var id = 'NOTIFICATION_ID'; // REQUIRED
var data = {
unread: false
};
Trello.notification.update(id, data).then(function (response) {
console.log('response ', response);
}).catch(function (error) {
console.log('error', error);
});
```### Organizations
#### Create Organization
```
var data = {
displayName: 'ORGANIZATION_NAME', // REQUIRED
desc: 'Organization description',
name: 'NAME',
website: 'https://example.com'
};
Trello.organization.create(data).then(function (response) {
console.log('response ', response);
}).catch(function (error) {
console.log('error', error);
});
```#### Delete Organization
```
Trello.organization.del('ORGANIZATION_ID').then(function (response) {
console.log('response ', response);
}).catch(function (error) {
console.log('error', error);
});
```#### Search Field Organization
```
Trello.organization.searchField('ORGANIZATION_ID', 'FIELD_NAME').then(function (response) {
console.log('response ', response);
}).catch(function (error) {
console.log('error', error);
});
```#### Search Organization
```
Trello.organization.search('ORGANIZATION_ID').then(function (response) {
console.log('response ', response);
}).catch(function (error) {
console.log('error', error);
});
```#### Update Organization
```
var id = 'ORGANIZATION_ID'; // REQUIRED
var data = {
name: 'or123',
displayName: 'ORGANIZATION_DISPLAY_NAME',
desc: 'Organization descriptions',
website: 'https://example.com',
prefs_associatedDomain: 'trello.com',
prefs_externalMembersDisabled: false,
prefs_googleAppsVersion: 1,
prefs_boardVisibilityRestrict_org: 'none',
prefs_boardVisibilityRestrict_private: 'none',
prefs_boardVisibilityRestrict_public: 'none',
prefs_orgInviteRestrict: '*.test.com',
prefs_permissionLevel: 'public'
};
Trello.organization.update(id, data).then(function (response) {
console.log('response ', response);
}).catch(function (error) {
console.log('error', error);
});
```### Webhooks
#### Create Webhook
```
var data = {
description: 'Webhook description',
callbackURL: 'https://mycallbackurl.com/', // REQUIRED
idModel: 'MODEL_ID', // REQUIRED
active: false
};
Trello.webhook.create(data).then(function (response) {
console.log('response ', response);
}).catch(function (error) {
console.log('error', error);
});
```#### Delete Webhook
```
Trello.webhook.del('WEBHOOK_ID').then(function (response) {
console.log('response ', response);
}).catch(function (error) {
console.log('error', error);
});
```#### Search Field Webhook
```
Trello.webhook.searchField('WEBHOOK_ID', 'FIELD_NAME').then(function (response) {
console.log('response ', response);
}).catch(function (error) {
console.log('error', error);
});
```#### Search Webhook
```
Trello.webhook.search('WEBHOOK_ID').then(function (response) {
console.log('response ', response);
}).catch(function (error) {
console.log('error', error);
});
```#### Update Webhook
```
var id = 'WEBHOOK_ID'; // REQUIRED
var data = {
displayName: 'ORGANIZATION_DISPLAY_NAME',
description: 'Webhook descriptions',
callbackURL: 'https://mycallbackurl.com/',
idModel: 'MODEL_ID',
active: false
};
Trello.webhook.update(id, data).then(function (response) {
console.log('response ', response);
}).catch(function (error) {
console.log('error', error);
});
```