webmaker-user-client

Utility functions for querying the webmaker user database

Webmaker User Client

Use this if you need to get, update, or delete information about a specific Webmaker user.

You will need basic auth credentials for and a Webmaker Login endpoint to use it.

npm install webmaker-user-client

var UserClient = require('webmaker-user-client');
 
var userClient = new UserClient({
  endpoint: 'http://testuser:password@localhost:3000'
});
{
  "user": {
    "avatar": "https://secure.gravatar.com/avatar/30c0f54f30fc6a201e3f5ddaa5bc5974?s=26&d=https%3A%2F%2Fstuff.webmaker.org%2Favatars%2Fwebmaker-avatar-44x44.png",
    "emailHash": "30c0f54f30fc6a201e3f5ddaa5bc5974",
    "displayName": "k88hudson",
    "id": 21,
    "email": "k88hudson@gmail.com",
    "username": "k88hudson",
    "fullName": "k88hudson",
    "deletedAt": null,
    "lastLoggedIn": "2014-05-12T20:21:34.000Z",
    "isAdmin": true,
    "isCollaborator": true,
    "isSuspended": false,
    "sendNotifications": false,
    "sendEngagements": false,
    "sendEventCreationEmails": true,
    "wasMigrated": false,
    "createdAt": "2014-03-11T18:20:44.000Z",
    "updatedAt": "2014-05-12T20:21:34.000Z"
  }
}
userClient.get.byEmail('kate@kate.com', function (erruser) { ... });
userClient.get.byUsername('k88hudson', function (erruser) { ... });
userClient.get.byId('1023', function (erruser) { ... });
userClient.get.byEmails(['kate@kate.com','chris@chris.com'], function (errusers) { ... });
userClient.get.byUsernames(['k88hudson','cade'], function (errusers) { ... });
userClient.get.byIds(['1023','1024'], function (errusers) { ... });
userClient.update.byEmail('kate@kate.com', {
  isCollaborator: true
}, function(erruser) {
  console.log(user);
});

Every method also has a twin that returns a Promise. Just append Async to the name:

userClient.get.byUsernamesAsync(
  ['jbuck', 'cade']
).then(function(users) {
  console.log('we got users: %j', users);
}).catch(function(e) {
  console.error('oh no: %s', e.stack);
});
userClient.update.byUsername
userClient.delete.byEmail
userClient.delete.byUsername