indaba-js-sdk
v0.1.6
Published
If you need to interact with lydian or mixolydian in JavaScript, use this.
Downloads
5
Readme
indaba-js-sdk
If you need to interact with lydian or mixolydian in JavaScript, use this.
Node.js Installation
npm install --save git+ssh://[email protected]: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)