JackBurton
Installing our sdk in your existing project is as easy as :
npm install @jackburton/sdk
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
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.
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);
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
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]);