chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
import { RuntimeError } from '@botpress/client'
|
||||
import { actions } from './actions'
|
||||
import { channels } from './channels'
|
||||
import { getFreshchatClient } from './client'
|
||||
import { handler } from './handler'
|
||||
import * as bp from '.botpress'
|
||||
|
||||
export default new bp.Integration({
|
||||
register: async ({ client, ctx, logger }) => {
|
||||
const freshchatClient = getFreshchatClient({ ...ctx.configuration }, logger)
|
||||
|
||||
if (!(await freshchatClient.verifyToken())) {
|
||||
throw new RuntimeError('Invalid API token or domain name')
|
||||
}
|
||||
|
||||
const channels = await freshchatClient.getChannels()
|
||||
|
||||
if (!ctx.configuration?.topic_name?.length) {
|
||||
throw new RuntimeError('Topic name required')
|
||||
}
|
||||
|
||||
const channel = channels.find((channel) => channel.name === ctx.configuration.topic_name)
|
||||
|
||||
if (!channel) {
|
||||
throw new RuntimeError(`Topic with name '${ctx.configuration.topic_name}' doesn't exist on your account`)
|
||||
}
|
||||
|
||||
await client.setState({
|
||||
type: 'integration',
|
||||
id: ctx.integrationId,
|
||||
name: 'freshchat',
|
||||
payload: {
|
||||
channelId: channel.id,
|
||||
},
|
||||
})
|
||||
},
|
||||
unregister: async () => {},
|
||||
actions,
|
||||
channels,
|
||||
handler,
|
||||
})
|
||||
Reference in New Issue
Block a user