indaba-js-sdk

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

indaba-js-sdk

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

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

var indaba = require('indaba-js-sdk')({
  lydianEndpoint: 'https://lydian.indabamusic.com', // optional 
});
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.

Undocumented, see admin project for examples

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

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)