Compass Digital Data Provider
An easy way to get started building data providers for Compass Digital. Provides an easy interface for creating methods that will be called via JSON-RPC 2.0.
Includes a built-in HTTP server and AWS Lambda handler.
Requirements
Installation
npm install @compassdigital/provider --save
Usage
var Provider = require("@compassdigital/provider");
var provider = new Provider({type: "menu"});
provider.on("get_menu", function(req, callback)
{
your_function(req, function(err, res)
{
callback(err, res);
});
});
provider.on(["get_menu", "get_menu_today"], () => {...});
Context
Sometimes your handler needs to know the context of the method call e.g. the user's id, location, etc. This is accessible via promises from this.context().
For example:
provider.on("get_menu", function(req, callback)
{
this.context().user().then(function(user_data)
{
var user_id = user_data.id;
callback(err, { message: "Your user id was " + user_id });
});
});
HTTP Server
provider.start(3000);
provider.stop();
AWS Lambda Handler
Create lambda.js ending with:
var provider =
module.exports = provider.lambda;
Configure a Lambda function with the setting Handler:
lambda.handler
Testing
KEY_ARN="SOME PRIVATE AWS KMS KEY ARN" node test