reshuffle
Version:
Reshuffle is a fast, unopinionated, minimalist integration framework
55 lines (41 loc) • 2.31 kB
JavaScript
const { Reshuffle } = require('reshuffle')
const { AsanaConnector } = require('reshuffle-asana-connector')
// Your project id can be found in Asana project home page URL (e.g https://app.asana.com/0/<YOUR_PROJECT_ID>/board)
const projectId = '<YOUR_PROJECT_ID>'
const app = new Reshuffle()
// This example uses reshuffle-asana-connector
// Code and full documentation available on Github: https://github.com/reshufflehq/reshuffle-asana-connector
// Get an Asana access token:
// - Go to https://app.asana.com/0/developer-console
// - Under 'Personal Access Token'' > '+ New Access Token'
// - Name it, then copy your token
const connector = new AsanaConnector(app, {
accessToken: process.env.ASANA_ACCESS_TOKEN,
baseURL: process.env.RUNTIME_BASE_URL, // Your Reshuffle runtime base URL
workspaceId: process.env.ASANA_WORKSPACE_ID, // The workspaceId can be find in Asana Console page url (e.g. https://app.asana.com/admin/<YOUR_WORKSPACE_ID>)
})
// Listening to added entities in your project
connector.on({ gid: projectId, asanaEvent: 'added' }, async (event, app) => {
const newTask = await connector.sdk().tasks.findById(event.resource.gid)
console.log('new task details', newTask)
})
async function main() {
const me = await connector.sdk().users.me()
console.log('user details', me) // { name: 'my name', email: 'email@foo.com', ... }
const project = await connector.sdk().projects.findById(projectId)
console.log('project details', project) // { name: 'my project name', ... }
const team = await connector.sdk().teams.findById(project.team.gid)
console.log('team details', team) // { name: 'Engineering', gid: '112233', organization: { name: 'my organisation name', gid: '12345'} ... }
const tasks = await connector.sdk().tasks.findByProject(projectId)
console.log(`tasks for project ${projectId}`, tasks.data) // [{ gid: '1199204075353966', name: 'File uploader broken on Chrome' }, ...]
const taskUpdated = await connector
.sdk()
.tasks.update(tasks.data[0].gid, { name: 'New name from Reshuffle' })
console.log(taskUpdated)
const task = await connector
.sdk()
.tasks.createInWorkspace(project.workspace.gid, { name: 'my new task' })
console.log(`new task created`, task) // { gid: '1234567898765', name: 'my new task' }
}
app.start()
main()