57 lines
1.8 KiB
TypeScript
57 lines
1.8 KiB
TypeScript
import { RuntimeError } from '@botpress/client'
|
|
import { handleOutgoingTextMessage } from './channels'
|
|
import { FeatureBaseClient } from './feature-base-api/client'
|
|
import { handler } from './handler'
|
|
import * as bp from '.botpress'
|
|
|
|
export default new bp.Integration({
|
|
register: async (props) => {
|
|
const client = new FeatureBaseClient(props.ctx.configuration.apiKey)
|
|
try {
|
|
await client.listBoards()
|
|
} catch {
|
|
throw new RuntimeError('Failed to register the integration.')
|
|
}
|
|
},
|
|
unregister: async () => {},
|
|
actions: {
|
|
listPosts: async (props) => {
|
|
const client = new FeatureBaseClient(props.ctx.configuration.apiKey)
|
|
const posts = await client.listPosts(props.input)
|
|
return posts
|
|
},
|
|
createPost: async (props) => {
|
|
const client = new FeatureBaseClient(props.ctx.configuration.apiKey)
|
|
return await client.createPost(props.input)
|
|
},
|
|
updatePost: async (props) => {
|
|
const client = new FeatureBaseClient(props.ctx.configuration.apiKey)
|
|
return await client.updatePost(props.input)
|
|
},
|
|
deletePost: async (props) => {
|
|
const client = new FeatureBaseClient(props.ctx.configuration.apiKey)
|
|
return await client.deletePost(props.input)
|
|
},
|
|
listBoards: async (props) => {
|
|
const client = new FeatureBaseClient(props.ctx.configuration.apiKey)
|
|
return await client.listBoards()
|
|
},
|
|
getBoard: async (props) => {
|
|
const client = new FeatureBaseClient(props.ctx.configuration.apiKey)
|
|
return await client.getBoard(props.input)
|
|
},
|
|
getComments: async (props) => {
|
|
const client = new FeatureBaseClient(props.ctx.configuration.apiKey)
|
|
return await client.getComments(props.input)
|
|
},
|
|
},
|
|
channels: {
|
|
comments: {
|
|
messages: {
|
|
text: handleOutgoingTextMessage,
|
|
},
|
|
},
|
|
},
|
|
handler,
|
|
})
|