@jackburton/sdk
v0.0.1-alpha.13
Published
JackBurton
Downloads
59
Readme
JackBurton
JackBurton Extension SDK
Installation
Installing our sdk in your existing project is as easy as :
npm install @jackburton/sdk
Configuration
Before using the SDK, you need to initialize it with your JackBurton API credentials, like this :
import { configure } from '@jackburton/sdk';
configure({ apiKey: '<your api key here>' });
// Have fun using the sdk
Usage
Note
Work in progress
We're implementing all the endpoints available in our extension API bits by bits.
If any feature is currently missing in the version of the SDK you're using, you can still access any endpoint using our raw client :
import { configure, useApi } from '@jackburton/sdk';
// remember to configure the sdk
// configure({ apiKey: '<api key>' });
const client = useApi();
client.createCall({ call: { /* ... */ } });
We recommand using this SDK in TypeScript, all the types for the API are available.
Amazon Connect integration
Use the following to integrate Amazon Connect with Jack Burton:
import { configure } from '@jackburton/sdk';
import { configureAWS, handleEvent } from '@jackburton/sdk/integrations/amazon-connect/index.js';
configure({ apiKey: '<your api key>' });
configureAWS({
accessKeyId: '<secret>', // This is optional if your Lambda has the Connect > Read > DescribeUser permission
secretAccessKey: '<secret>',
});
export const handler = (evt) => handleEvent(evt);
search:created
To listen to a search event through a webhook, you only have to do the following :
import Fastify from 'fastify';
import { configure, createSearchHandler } from '@jackburton/sdk';
import type { SearchEventData } from '@jackburton/sdk';
// remember to configure the sdk
// configure({ apiKey: process.env.JACKBURTON_APIKEY });
const fastify = Fastify({logger: true});
// Will only listen to search labelled as product
const productSearchHandler = createSearchHandler("product", async (search: SearchEventData)=>{
//Perform the search on your data
const ownData = ["one-one", "one-two", "one-three"];
const filteredData = ownData.filter((s: string) => s.indexOf(search.query) > -1);
// Turn your data into SearchResults
return filteredData.map((s: string) => ({ title: s }));
});
// Webhook listener
fastify.route({ method: 'POST', url: '/webhook/search',
handler: async (request: any, reply: any) => {
productSearchHandler(request.body);
}
});
fastify.listen();
Examples are shown for a fastify app to listen to the webhook event, but use the tool you're most comfortable with
Adapters
Cloudflare
To deploy a new JackBurton extension on Cloudflare, we provide an easy-to-use adapter.
Here is an example to listen to different search events inside one webhook :
import {createSearchHandler, createCloudflareAdapter} from '@jackburton/sdk';
const productSearchHandler = createSearchHandler('product', ()=>{/* ... */});
const userSearchHandler = createSearchHandler('user', ()=>{/* ... */});
export default createCloudflareAdapter([productSearchHandler, userSearchHandler]);