indaba-js-sdk

If you need to interact with lydian or mixolydian in JavaScript, use this.

npm install indaba-js-sdk
1 downloads in the last week
40 downloads in the last month

indaba-js-sdk

If you need to interact with lydian or mixolydian in JavaScript, use this.

Node.js Installation

npm install --save git+ssh://git@github.com:indabamusic/indaba-js-sdk.git

Node.js Usage

As a client

var indaba = require('indaba-js-sdk')({
  lydianEndpoint: 'https://lydian.indabamusic.com', // optional
});

Providing a login endpoint

var indaba = require('indaba-js-sdk');
var app = express();
app.use(express.bodyParser());
app.use('/login', indaba.loginMiddleware({
  lydianEndpoint: 'https://lydian.indabamusic.com',
  clientId: 'lydian client id',
  clientSecret: 'lydian client secret',
}));

Check index.js for more stuff.

Browser Usage

Undocumented, see admin project for examples

Testing

To test login, you must set client id, client secret, username and password in your ENV.

TEST_CLIENT='' \
TEST_SECRET='' \
TEST_USERNAME='' \
TEST_PASSWORD='' \
npm test

Fetch API

Low level fetch API makes HTTP requests. No funny business.

  • Namespaced
  • A special option all: true can be used to fetch all pages.

// opportunity read
indaba.opportunity.fetch(opts, cb)
indaba.opportunity.fetchArchive(opts, cb)
indaba.opportunity.fetchEnteredByUser(user, opts, cb)
indaba.opportunity.fetchOne(id, cb)

// opportunity write
indaba.opportunity.enter(opp, cb)
indaba.opportunity.update(opp, cb)


// submission read
indaba.submission.fetchByOpportunity(opportunity, options, cb)
indaba.submission.fetchByUser(user, options, cb)
indaba.submission.fetchVotedForByUser(user, options, cb)
indaba.submission.fetchOne(id, cb)

// submission write
indaba.submission.update(submission, cb)
indaba.submission.vote(submission, cb)
indaba.submission.unvote(submission, cb)


// user read
indaba.user.fetch(opts, cb)
indaba.user.fetchEnteredInOpportunity(opportunity, opts, cb)
indaba.user.fetchVotedForSubmission(submission, opts, cb)
indaba.user.fetchFollowers(user, opts, cb)
indaba.user.fetchFollowing(user, opts, cb)
indaba.user.fetchOne(id, cb)

// user write
indaba.user.update(user, cb)
indaba.user.follow(user, cb)
indaba.user.unfollow(user, cb)


// timed comments read
indaba.timedComments.fetchBySubmission(submission, opts, cb)
indaba.timedComments.fetchByUser(user, opts, cb)
indaba.timedComments.fetchOne(timedComment, cb)

// timed comments write
indaba.timedComments.create(timedComment, cb)
indaba.timedComments.delete(timedComment, cb)


// whoami
indaba.whoami(cb)
npm loves you