UNPKG

meshblu-http

Version:
405 lines (370 loc) 16 kB
# Meshblu HTTP A node package to use the Meshblu HTTP API... [![Build Status](https://travis-ci.org/octoblu/node-meshblu-http.svg?branch=master)](https://travis-ci.org/octoblu/node-meshblu-http) [![Code Climate](https://codeclimate.com/github/octoblu/node-meshblu-http/badges/gpa.svg)](https://codeclimate.com/github/octoblu/node-meshblu-http) [![Test Coverage](https://codeclimate.com/github/octoblu/node-meshblu-http/badges/coverage.svg)](https://codeclimate.com/github/octoblu/node-meshblu-http) [![npm version](https://badge.fury.io/js/meshblu-http.svg)](http://badge.fury.io/js/meshblu-http) [![Gitter](https://badges.gitter.im/octoblu/help.svg)](https://gitter.im/octoblu/help) # Usage ### Install: ```shell npm install --save meshblu-http ``` ### Use: ```javascript var MeshbluHttp = require('meshblu-http'); var meshbluHttp = new MeshbluHttp(); meshbluHttp.register({}, function(error, response) { // code goes here }) ``` # Functions ### Constructor | Parameter | Type | Required| Description | | ----------| -------| --------| -------------------------------------| | options | object | no | can contain any of these keys: bearerToken, uuid, token, hostname, port, protocol, domain, service, secure, resolveSrv, auth | ------------------------------------------ ```javascript var meshbluHttp = new MeshbluHttp({uuid: 'fancy_uuid', token: 'fancy_token'}) var meshbluHttp = new MeshbluHttp({bearerToken: 'some-bearer-token'}) ``` ### Authenticate | Parameter | Type | Required| Description | | ----------| -------| --------| -------------------------------------| | callback |function| yes | a function that returns error and response | ------------------------------------------ ```javascript meshbluHttp.authenticate(function(error, response) { // code goes here }) ``` ### Create Hook | Parameter | Type | Required| Description | | ----------| -------| --------| -------------------------------------| | uuid | string | yes    | a string containing the uuid | | type | string | yes    | a string containing the type | | url | string | yes    | a string containing the url | | callback |function| yes    | a function that returns error | ------------------------------------------ ```javascript meshbluHttp.createHook('fancy_uuid', 'fancy_token', 'fancy_url', function(error) { // code goes here }) ``` ### Create Subscription | Parameter | Type | Required| Description | | ----------| -------| --------| -------------------------------------| | options | object | yes    | an object containing three keys: subscriberUuid, emitterUuid, and type | | callback |function| yes | a function that returns error and response | ------------------------------------------ ```javascript meshbluHttp.createSubscription( { subscriberUuid: 'fancy_uuid', emitterUuid: 'another_fancy_uuid', type: 'fancy_type' }, function(error, response){ // code goes here } ) ``` ### Delete Subscription | Parameter | Type | Required| Description | | ----------| -------| --------| -------------------------------------| | options | object | yes    | an object containing three keys: subscriberUuid, emitterUuid, and type | | callback |function| yes | a function that returns error and response | ------------------------------------------ ```javascript meshbluHttp.deleteSubscription( { subscriberUuid: 'fancy_uuid', emitterUuid: 'another_fancy_uuid', type: 'fancy_type' }, function(error, response){ // code goes here } ) ``` ### Delete Subscriptions | Parameter | Type | Required| Description | | ----------| -------| --------| -------------------------------------| | options | object | yes    | an object containing three keys: subscriberUuid, emitterUuid, and type. Type and emitterUuid are optional and will be used to filter the subscriptions to delete. | | callback |function| yes | a function that returns error and response | ------------------------------------------ ```javascript meshbluHttp.deleteSubscriptions( { subscriberUuid: 'fancy_uuid', emitterUuid: 'another_fancy_uuid', type: 'fancy_type' }, function(error, response){ // code goes here } ) ``` ### Device | Parameter | Type | Required| Description | | ----------| -------| --------| -------------------------------------| | uuid | string | yes    | a string containing the uuid of the device | | metadata | object | no    | an object containing metadata information | | callback |function| yes    | a function that returns error and response | ------------------------------------------ ```javascript meshbluHttp.device('fancy_uuid', {as: 'another_user_uuid'}, function(error, response){ // code goes here }) ``` ### Devices | Parameter | Type | Required| Description | | ----------| -------| --------| -------------------------------------| | query | object | no     | an object containing the keys you want to search for | | metadata | object | no    | an object containing metadata information | | callback |function| yes    | a function that returns error and response | ------------------------------------------ ```javascript meshbluHttp.devices({type: 'drone'}, {as: 'another_user_uuid'}, function(error, response){ // code goes here }) ``` ### Find And Update | Parameter | Type | Required| Description | | ----------| -------| --------| -------------------------------------| | uuid | string | yes    | a string containing the uuid of the device | | params | object | yes    | an object containing the new changes to the device | | metadata | object | no    | an object containing metadata information | | callback |function| yes    | a function that returns error and response | ------------------------------------------ ```javascript meshbluHttp.findAndUpdate('fancy_uuid', {type: 'new-type'}, function(error, response){ // code goes here }) ``` ### Generate And Store Token | Parameter | Type | Required| Description | | ----------| -------| --------| -------------------------------------| | uuid | string | yes    | a string containing the uuid of the device | | callback |function| yes    | a function that returns error and response | ------------------------------------------ ```javascript meshbluHttp.generateAndStoreToken('fancy_uuid', function(error, response){ // code goes here }) ``` ### Generate And Store Token With Options | Parameter | Type | Required| Description | | ----------| -------| --------| -------------------------------------| | uuid | string | yes    | a string containing the uuid of the device | | options | object | no | an object containing the options for the token | | callback |function| yes    | a function that returns error and response | ------------------------------------------ ```javascript meshbluHttp.generateAndStoreTokenWithOptions('fancy_uuid', {expiresOn: '1485452874'}, function(error, response){ // code goes here } ) ``` ### Generate Key Pair | Parameter | Type | Required| Description | | ----------| -------| --------| -------------------------------------| | none | |     | | ------------------------------------------ ```javascript meshbluHttp.generateKeyPair() ``` ### Health Check | Parameter | Type | Required| Description | | ----------| -------| --------| -------------------------------------| | callback |function| yes    | a function that returns error, healthy, and code | ------------------------------------------ ```javascript meshbluHttp.healthcheck(function(error, healthy, code){ // code goes here }) ``` ### Message | Parameter | Type | Required| Description | | ----------| -------| --------| -------------------------------------| | message | object | yes | an object containing the message to send | | metadata | object | no    | an object containing metadata information | | callback |function| yes    | a function that returns error and response | ------------------------------------------ ```javascript meshbluHttp.message({data: 'hello_message'}, function(error, response){ // code goes here }) ``` ### My Devices | Parameter | Type | Required| Description | | ----------| -------| --------| -------------------------------------| | query | object | no    | an object containing your query | | callback |function| yes    | a function that returns error and response | ------------------------------------------ ```javascript meshbluHttp.mydevices({type: 'drone'}, function(error, response){ // code goes here }) ``` ### Public Key | Parameter | Type | Required| Description | | ----------| -------| --------| -------------------------------------| | uuid | string | yes    | a string containing the uuid of the device | | callback |function| yes    | a function that returns error and response | ------------------------------------------ ```javascript meshbluHttp.publicKey('fancy_uuid', function(error, response){ // code goes here }) ``` ### Register | Parameter | Type | Required| Description | | ----------| -------| --------| -------------------------------------| | options | object | yes    | an object containing properties that you would like your device to have. Can be empty object| | callback |function| yes    | a function that returns error and response | ------------------------------------------ ```javascript meshbluHttp.register({color: 'blue'}, function(error, response){ // code goes here }) ``` ### Reset Token | Parameter | Type | Required| Description | | ----------| -------| --------| -------------------------------------| | uuid | string | yes    | a string containing the uuid of the device | | callback |function| yes    | a function that returns error and response | ------------------------------------------ ```javascript meshbluHttp.resetToken('fancy_uuid', function(error, response){ // code goes here }) ``` ### Revoke Token | Parameter | Type | Required| Description | | ----------| -------| --------| -------------------------------------| | uuid | string | yes    | a string containing the uuid of the device | | token | string | yes    | a string containing the token of the device | | callback |function| yes    | a function that returns error and response | ------------------------------------------ ```javascript meshbluHttp.revokeToken('fancy_uuid', 'fancy_token', function(error, response){ // code goes here }) ``` ### Revoke Token By Query | Parameter | Type | Required| Description | | ----------| -------| --------| -------------------------------------| | uuid | string | yes    | a string containing the uuid of the device | | query | object | yes    | an object containing your query | | callback |function| yes    | a function that returns error and response | ------------------------------------------ ```javascript meshbluHttp.revokeTokenByQuery('fancy_uuid', {expiresOn: '1485452874'}, function(error, response){ // code goes here } ) ``` ### Search | Parameter | Type | Required| Description | | ----------| -------| --------| -------------------------------------| | query | object | yes    | an object containing your query | | metadata | object | yes   | an object containing metadata information. Can be left empty | | callback |function| yes    | a function that returns error and response | ------------------------------------------ ```javascript meshbluHttp.search({type: 'drone'}, {as: 'another_uuid'}, function(error, response){ // code goes here } ) ``` ### Search Tokens | Parameter | Type | Required| Description | | ----------| -------| --------| -------------------------------------| | query | object | yes    | an object containing your query | | metadata | object | yes   | an object containing metadata information. Can be left empty | | callback |function| yes    | a function that returns error and response | ------------------------------------------ ```javascript meshbluHttp.searchTokens({expiresOn: '1485452874'}, {as: 'another_uuid'}, function(error, response){ // code goes here } ) ``` ### Set Private Key | Parameter | Type | Required| Description | | ----------| -------| --------| -------------------------------------| | privateKey| string/object | yes   | a string or object containing your privateKey | ------------------------------------------ ```javascript meshbluHttp.setPrivateKey(privateKey) ``` ### Sign | Parameter | Type | Required| Description | | ----------| -------| --------| -------------------------------------| | data     | object | yes    | an object containing the data you want to sign your privateKey with | ------------------------------------------ ```javascript meshbluHttp.sign(data) ``` ### Subscriptions | Parameter | Type | Required| Description | | ----------| -------| --------| -------------------------------------| | uuid | string | yes    | a string containing the uuid of the device | | metadata | object | no    | an object containing metadata information | | callback |function| yes    | a function that returns error and response | ------------------------------------------ ```javascript meshbluHttp.subscriptions('fancy_uuid', {as: 'another_uuid'}, function(error, response){ // code goes here } ) ``` ### Unregister | Parameter | Type | Required| Description | | ----------| -------| --------| -------------------------------------| | device | object | yes    | an object containing the device credentials | | callback |function| yes    | a function that returns error and response | ------------------------------------------ ```javascript meshbluHttp.unregister({uuid: 'abc', token: 'asd'}, function(error, response){ // code goes here }) ``` ### Update | Parameter | Type | Required| Description | | ----------| -------| --------| -------------------------------------| | uuid | string | yes    | a string containing the uuid | | params | object | yes    | an object containing the new changes to the device | | metadata | object | no    | an object containing metadata information | | callback |function| yes | a function that returns error and response | ------------------------------------------ ```javascript meshbluHttp.update('fancy_uuid', {color: 'green'}, function(error, response){ // code goes here }) ``` ### Verify | Parameter | Type | Required| Description | | ----------| -------| --------| -------------------------------------| | message | string/object | yes    | data for encrypting | | signature | string | yes    | this can be obtained from sign() | ------------------------------------------ ```javascript meshbluHttp.verify(message, signature) ``` ### Whoami | Parameter | Type | Required| Description | | ----------| -------| --------| -------------------------------------| | callback |function| yes | a function that returns error and response | ------------------------------------------ ```javascript meshbluHttp.whoami(function(error, response){ // code goes here }) ```