A Node.js client for APIs

Node.js client for

This provides utility functions to use APIs within Node.js apps.

import Hull from 'hull';
const hull = new Hull({
  platformId: 'YOUR_HULL_PLATFORM_ID',
  platformSecret: 'YOUR_HULL_PLATFORM_SECRET',

Once you have instanciated a client, you can use one of the get, post, putor delete methods to perform actions of our APIs. The first parameter is the route, the second is the set of parameters you want to send with the request, the third is a callback.

//hull.api.get works too. 
hull.get(path /*, params*/).then(function(data){
var user ='userId');
//user is an instance of Hull, scoped to a specific user. it will act as if the user performed the action 
  • hull.configuration() : Returns the global configuration
  • create a new Hull client acting as the user
  • hull.userToken({email:'',name:'FooBar'}, claims) : Creates a signed id for the user passed in hash. It allows to connect your own users to services. userHash needs an email field. Read the docs about Bring your own users
  • hull.currentUserId(userId, userSig) : Checks the validity of the signature relatively to a user id
  • hull.currentUserMiddleware(): Generates a middleware to add to your Connect/Express apps. It will check if a user is onnected.
  • hull.webhookMiddleware(): Generates a middleware to answer to webhooks (deprecated, please use notifications instead)
const app = express();
// a middleware with no mount path; gets executed for every request to the app 
  console.log(req.hull.userId) // Should exist if there is a user logged in;   
//Responds to webhooks 
  console.log(req.body) // Webhook payload, decrypted. 

Your app can subscribe to events from Hull and receive notifications via http POST.

const app = express();
import { NotifHandler } from 'hull';
const handler = NotifHandler({
  onSubscribe() {} // called when a new subscription is installed 
  onError() {} // called when an error is raised 
  events: {
    'user_report:update' : function(notifcontext) {
      console.warn('Event Handler here', notif, context);
      // notif: {  
      //    message: { id: '123', ... },  
      //    subject: 'user_report:update',  
      //    timestamp: "2016-02-03T17:01:57.393Z' } 
      // } 
      // context: {  
      //  hull: <Instance of Hull Client>  
      //  ship: <Current ship instance if available> 
      // } 
})'/notify', handler);