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){

For convenience, we add wrapped=true to all requests that return a Collection as an Array. You will receive an object in the form :

  data: [....],
    'total': 1163,
    page: 1,
    pages: 39,
    per_page: 30

If you want to un-nest the response and receive raw arrays, without pagination, add wrapped:false to your query

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(userHash, 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
  • 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
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.