UNPKG

hapi-km

Version:

hapijs plugin wrapping kilometer.io's REST api

108 lines (80 loc) 2.97 kB
# hapi-km [![Build Status](https://travis-ci.org/ejeklint/hapi-km.svg?branch=master)](https://travis-ci.org/ejeklint/hapi-km) [Hapi](http://hapijs.com) plugin wrapping [kilometer.io](http://kilometer.io)'s REST api for easy access within the server. On successful registration, four new methods will be available on the server.methods object. Installation: `npm install --save hapi-km` Example usage: ```js 'use strict'; const Hapi = require('hapi'); // Create a server with a host and port const server = new Hapi.Server(); server.connection({ host: 'localhost', port: 8000 }); server.register({ register: require('hapi-km'), options: { app_id: require('./config').kilometerAppId } }, (err) => { // Oops }); // An example route using the plugin server.route({ method: 'GET', path: '/hello', handler: (request, reply) => { request.server.methods.km.trackIdentifiedEvent({ user_id: 'larry_potter', event_name: 'some_event', event_properties: { event_property: 'some_property' } }, (err, res) => { // This callback is optional if (err) { throw (err); } if (res.statusCode >= 400) { console.log(res.statusMessage); } reply('hello there'); }); } }); // Start the server server.start((err) => { if (err) { throw err; } console.log('Server running at:', server.info.uri); }); ``` ## Methods ### `trackIdentifiedEvent(options, [callback])` Tracks an identified event at kilometer.io. - `options` An object with the following keys: - `user_id` A kilometer.io user id - `event_name` The name of the event_name - `event_properties` An object with one or more properties - `event_property` A property on the event_property - `event_property_2` Yet a property (opt.) - `callback` A optional function with signature `function(err, res)` with status of the call to kilometer.io. ### `setUserProperty(options, [callback])` Sets one or more user properties. - `options` An object with one or more properties and their values: - `foo_property` - `bar_property` - `callback` A optional function with signature `function(err, res)` with status of the call to kilometer.io. ### `increaseUserProperty(options, [callback])` Increases the value of a property. - `options` An object with one property and a numerical value to increase it with: - `foo_property` - `callback` A optional function with signature `function(err, res)` with status of the call to kilometer.io. ### `decreaseUserProperty(options, [callback])` Decreases the value of a property. - `options` An object with one property and a numerical value to decrease it with: - `foo_property` - `callback` A optional function with signature `function(err, res)` with status of the call to kilometer.io.