94 lines
3.1 KiB
TypeScript
94 lines
3.1 KiB
TypeScript
import * as actions from './actions'
|
|
import * as hooks from './hooks'
|
|
import * as bp from '.botpress'
|
|
|
|
const plugin = new bp.Plugin({
|
|
actions: {
|
|
async syncFilesToBotpess(props) {
|
|
props.logger.info('Called action syncFilesToBotpess')
|
|
return await actions.syncFilesToBotpess.callAction(props)
|
|
},
|
|
async listItemsInFolder(props) {
|
|
props.logger.info('Called action listItemsInFolder. Redirecting to integration...')
|
|
return await props.actions['files-readonly'].listItemsInFolder(props.input)
|
|
},
|
|
},
|
|
})
|
|
|
|
plugin.on.event('files-readonly:fileCreated', async (props) => {
|
|
if (!props.configuration.enableRealTimeSync) {
|
|
return
|
|
}
|
|
|
|
props.logger.info('File created event triggered', props.event.payload.file)
|
|
await hooks.onEvent.fileCreated.handleEvent(props)
|
|
})
|
|
|
|
plugin.on.event('files-readonly:fileDeleted', async (props) => {
|
|
if (!props.configuration.enableRealTimeSync) {
|
|
return
|
|
}
|
|
|
|
props.logger.info('File deleted event triggered', props.event.payload.file)
|
|
await hooks.onEvent.fileDeleted.handleEvent(props)
|
|
})
|
|
|
|
plugin.on.event('files-readonly:fileUpdated', async (props) => {
|
|
if (!props.configuration.enableRealTimeSync) {
|
|
return
|
|
}
|
|
|
|
props.logger.info('File updated event triggered', props.event.payload.file)
|
|
await hooks.onEvent.fileUpdated.handleEvent(props)
|
|
})
|
|
|
|
plugin.on.event('files-readonly:folderDeletedRecursive', async (props) => {
|
|
if (!props.configuration.enableRealTimeSync) {
|
|
return
|
|
}
|
|
|
|
props.logger.info('Folder deleted event triggered', props.event.payload.folder)
|
|
await hooks.onEvent.folderDeletedRecursive.handleEvent(props)
|
|
})
|
|
|
|
plugin.on.event('files-readonly:aggregateFileChanges', async (props) => {
|
|
if (!props.configuration.enableRealTimeSync) {
|
|
return
|
|
}
|
|
|
|
props.logger.info('Aggregate file changes event triggered', props.event.payload.modifiedItems)
|
|
await hooks.onEvent.aggregateFileChanges.handleEvent(props)
|
|
})
|
|
|
|
plugin.on.workflowStart('buildQueue', async (props) => {
|
|
props.logger.info('buildQueue workflow started', props.workflow.tags)
|
|
await hooks.onWorkflowStart.buildQueue.handleEvent(props)
|
|
})
|
|
|
|
plugin.on.workflowContinue('buildQueue', async (props) => {
|
|
props.logger.info('buildQueue workflow continued', props.workflow.tags)
|
|
await hooks.onWorkflowContinue.buildQueue.handleEvent(props)
|
|
})
|
|
|
|
plugin.on.workflowTimeout('buildQueue', async (props) => {
|
|
props.logger.info('buildQueue workflow timed out', props.workflow.tags)
|
|
await hooks.onWorkflowTimeout.buildQueue.handleEvent(props)
|
|
})
|
|
|
|
plugin.on.workflowStart('processQueue', async (props) => {
|
|
props.logger.info('processQueue workflow started', props.workflow.tags)
|
|
await hooks.onWorkflowStart.processQueue.handleEvent(props)
|
|
})
|
|
|
|
plugin.on.workflowContinue('processQueue', async (props) => {
|
|
props.logger.info('processQueue workflow continued', props.workflow.tags)
|
|
await hooks.onWorkflowContinue.processQueue.handleEvent(props)
|
|
})
|
|
|
|
plugin.on.workflowTimeout('processQueue', async (props) => {
|
|
props.logger.info('processQueue workflow timed out', props.workflow.tags)
|
|
await hooks.onWorkflowTimeout.processQueue.handleEvent(props)
|
|
})
|
|
|
|
export default plugin
|