import {DialogManager, InMemoryDataStore, InMemoryDialogSet} from "./models";
import {RedisDataStore} from "./redis";
import {MemjsDataStore} from "./memjs";
const dialogSet = new InMemoryDialogSet();
dialogSet.addRoot({
run: ({ state, request , dialog, dialogSet}) => {
return dialogSet.init({
text: 'Welcome. Choose option:' +
'\n1. Show Balance' +
'\n2. Buy Airtime',
contentType: "TEXT"
});
},
next: {
"1": "showBalance",
"2": "buyAirtime"
}
})
dialogSet.addDialog({
name: 'buyAirtime',
run: ({ request}) => {
return dialogSet.con({ text: "Enter amount:", contentType: "TEXT"});
},
_default: 'buyAirtime.amount'
})
dialogSet.addDialog({ name: 'showBalance',
run: ({ request }) => {
return dialogSet.end({ text: 'Your balance is KES ', contentType: "TEXT"});
}
})
dialogSet.addDialog({
name: 'buyAirtime.amount',
run: ({ state , request}) => {
// use menu.val to access user input value
return dialogSet.end({ text : "Airtime bought successfully.", contentType: "TEXT"});
}
});
const RunExample = async () => {
const redis = require("redis");
const client = redis.createClient({
url: process.env.REDIS_URL
})
const memjs = require('memjs')
const memjsClient = memjs.Client.create(process.env.MEMCACHED_URL, {
username: process.env.MEMCACHED_USERNAME,
password: process.env.MEMCACHED_PASSWORD,
timeout: 3,
retries: 6
})
client.on("error", function(error: any) {
console.error(error);
});
client.set("key", "value", redis.print);
client.get("key", redis.print);
// const dataStore = new InMemoryDataStore();
// const app = new DialogManager(dialogSet, new RedisDataStore(client));
const app = new DialogManager(dialogSet, new MemjsDataStore(memjsClient));
let rp1 = await app.handle({channelType: 'facebook', session: "user-1", text: "Hello", user: "user-1", contentType: "TEXT"})
console.log({rp1})
let rp2 = await app.handle({channelType: 'facebook', session: "user-1", text: "1", user: "user-1", contentType: "TEXT"})
console.log({rp2})
let rp3 = await app.handle({channelType: 'facebook', session: "user-1", text: "1", user: "user-1", contentType: "TEXT"})
console.log({rp3})
let rp4 = await app.handle({channelType: 'facebook', session: "user-1", text: "2", user: "user-1", contentType: "TEXT"})
console.log({rp4})
let rp5 = await app.handle({channelType: 'facebook', session: "user-1", text: "2", user: "user-1", contentType: "TEXT"})
console.log({rp5})
client.quit(function (error: Error | null){
console.log({ error })
})
await memjsClient.quit()
};
@fastbot/sdk
1.0.1 • Public • PublishedDependencies (3)
Dev Dependencies (5)
Package Sidebar
Install
npm i @fastbot/sdk
Weekly Downloads
1
Version
1.0.1
License
UNLICENSED
Unpacked Size
32.7 kB
Total Files
20