Node.js library for the Clever API
CoffeeScript Makefile JavaScript
Latest commit 84c764d Jul 7, 2017 @samfishman samfishman 0.11.1
Permalink
Failed to load latest commit information.
lib Use v1.2. Jul 7, 2017
test Use v1.2. Jul 7, 2017
.gitignore first commit Dec 17, 2012
LICENSE add license Aug 3, 2014
Makefile Allows running test when no files have changed. Jun 25, 2015
README.md Remove api-key auth (#52) Nov 7, 2016
circle.yml Convert to Circle CI Jan 16, 2017
index.js first commit Dec 17, 2012
mock.coffee mocks: replace understream with highland Jun 6, 2016
package.json 0.11.1 Jul 7, 2017

README.md

Clever Javascript Library

Build Status

Installation

Via npm:

npm install clever

Usage

Clever = require('clever');
var clever = Clever({token: 'YOUR_BEARER_TOKEN'});

If you'd like to play around with our test data, please use the token: DEMO_TOKEN. See our developer guide for more information.

The clever package exposes objects corresponding to resources:

  • District
  • School
  • Section
  • Student
  • Teacher
  • Event

Each exposes a query API that closely resembles that of Mongoose. The available methods are find, findOne, and findById:

clever.District.find({}, function(error, districts) {
  assert(Array.isArray(districts));
  assert(districts[0] instanceof clever.District);
  assert.equal(district.get('name'), 'Demo District');
});

clever.School.findOne({ name: "Clever Academy" }, function(error, school) {
  assert(school instanceof clever.School);
  assert.equal(school.get('name'), 'Clever Academy');
});

clever.School.findById('4fee004cca2e43cf27000001', function(error, school) {
  assert(school instanceof clever.School);
  assert.equal(school.get('name'), 'Clever Academy');
});

When no callback is passed, the methods return a query object that allows you to build up a query over time:

clever.School
.find()
.where('name').equals('Clever Academy')
.exec(callback);

Query objects also support a stream interface for auto-pagination:

// pull sections 10 at a time
var count = 0;
var stream = clever.Section.find().limit(10).stream();
stream.on('data', function(section) {
  count += 1;
  assert(section instanceof clever.Section);
});
stream.on('end', function() {
  console.log(count, 'sections loaded');
});

Feedback

Questions, feature requests, or feedback of any kind is always welcome! We're available at tech-support@clever.com.