const createUser = require("./createUser") const enableUser = require("./enableUser") const disableUser = require("./disableUser") module.exports = async ( appPackage, masterAppInternal, appName, instanceKey ) => { const plugin = await constructPlugin(masterAppInternal, appName, instanceKey) appPackage.behaviourSources._injected = plugin createActions(appPackage) createTriggers(appPackage) } const createTriggers = appPackage => { const appDef = appPackage.appDefinition appDef.triggers.push({ actionName: "createUser", eventName: "authApi:createUser:onComplete", optionsCreator: "return {user:context.result};", condition: "", }) appDef.triggers.push({ actionName: "enableUser", eventName: "authApi:enableUser:onComplete", optionsCreator: "return {username:context.username};", condition: "", }) appDef.triggers.push({ actionName: "disableUser", eventName: "authApi:disableUser:onComplete", optionsCreator: "return {username:context.username};", condition: "", }) } const createActions = appPackage => { const appDef = appPackage.appDefinition appDef.actions.push({ name: "createUser", behaviourSource: "_injected", behaviourName: "createUser", initialOptions: {}, }) appDef.actions.push({ name: "enableUser", behaviourSource: "_injected", behaviourName: "enableUser", initialOptions: {}, }) appDef.actions.push({ name: "disableUser", behaviourSource: "_injected", behaviourName: "disableUser", initialOptions: {}, }) } const constructPlugin = async (masterAppInternal, appName, instanceKey) => { const app = await masterAppInternal.getApplication(appName) const initialiseObj = { masterAppInternal, app, instanceKey, } return { createUser: createUser(initialiseObj), enableUser: enableUser(initialiseObj), disableUser: disableUser(initialiseObj), } }