indaba-js-sdk

0.1.6 • Public • Published

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)

/indaba-js-sdk/

    Package Sidebar

    Install

    npm i indaba-js-sdk

    Weekly Downloads

    1

    Version

    0.1.6

    License

    none

    Last publish

    Collaborators

    • pdswan
    • fuchse
    • andreasklein