-
Notifications
You must be signed in to change notification settings - Fork 78
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
plugin-flow-builder: use only content id outside plugin #2790
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Iru89
requested review from
ericmarcos,
asastre,
AinaVendrell,
MarcosCA,
AlbertGom,
alexgimenez02 and
CarlosELorenzo
March 11, 2024 14:16
Iru89
force-pushed
the
use-only-contentID-outside-plugin
branch
from
March 18, 2024 09:42
a6ae11e
to
29770cb
Compare
vanbasten17
approved these changes
Mar 20, 2024
AinaVendrell
approved these changes
Mar 21, 2024
Iru89
changed the base branch from
master-lts
to
feature/flow-builder-smart-intents
March 26, 2024 12:02
Iru89
changed the base branch from
feature/flow-builder-smart-intents
to
node-v20
March 26, 2024 14:29
Iru89
force-pushed
the
use-only-contentID-outside-plugin
branch
from
March 26, 2024 14:29
29770cb
to
0d4298c
Compare
Test Results1 tests 1 ✅ 2s ⏱️ Results for commit 459c0fb. ♻️ This comment has been updated with latest results. |
Iru89
force-pushed
the
use-only-contentID-outside-plugin
branch
from
March 26, 2024 15:33
0d4298c
to
459c0fb
Compare
Iru89
changed the title
Use only content id outside plugin
plugin-flow-builder: use only content id outside plugin
Mar 27, 2024
## Description Added `HtSmartIntentNode` models along with `getNodeSmartIntents` to retrieve them from defined flow in flow builder and make use of Smart Intent functionality ## Context ![Captura de pantalla 2024-03-27 a las 9 12 07](https://github.com/hubtype/botonic/assets/36898236/12097021-8fb9-42e2-a34c-8bb8edba7446) Reorder the priority in which user input is resolved in the plugin's pre method: - keywords - smart intent - intent ![image (8)](https://github.com/hubtype/botonic/assets/36898236/4a1f3f9a-79e5-409f-a851-7833a196fe3d) --------- Co-authored-by: Oriol Raventos <[email protected]>
Iru89
added a commit
that referenced
this pull request
Mar 27, 2024
## Description This PR includes #2803 and #2790 Removed from version 1.0.0-dev - botonic-api - botonic-pulumi - create-botonic-app package Removes old AI packages that we won't update anymore - botonic-nlp - botonic-intent-classification - botonic-ner Removes the package-lock.json from each package Add the examples folder to the monorepo with the https://github.com/hubtype/botonic-examples but examples using @botonic/dx in the devDependencies and the new version of @botonic/react With node 20 you use npm 10. With npm 10 I created a monorepo using npm workspaces. With this monorepo you do `npm install` in the root of the project and this creates a shared node_modules in the root. You can run scripts for each package from the botonic root. For example `npm run build -w @botonic/core` Change several things about how builds are done using tsc. It adds a tsconfig.esm.base.json and tsconfig.cjs.base.json to the root of the project and extends these two files to create the builds of all packages. ## Context This PR updates many dependencies such as Node, npm, webpack (webpack plugin), jest, eslint (eslint plugins), prettier, axios, etc. It also updates the github actions so that builds are done properly when running tests in the repository. ## Approach taken / Explain the design When using an npm monorepo, symlink internal to the monorepo is used. When using symlink it is necessary to build @botonic/core before making changes to a package that requires `@botonic/core`. For example if you want to change `@botonic/react` code you need to build `@botonic/core` to make the imports work, pass the lint, pass the tests etc. This is also important in the github actions. now you can declare a BUILD_COMMAND for cases where you need to build core first. ## To document / Usage example To start developing using all these new versions of node, npm, monorepo, etc. - Remove all package-lock.json, all node_modules and lib folders - With nvm (or similar) use node 20 and npm 10 - From root folder do an `npm i` - Then an npm build on `@botonic/core` - Then an npm build on `@botonic/react` ## Testing All the tests that already existed are still running locally and in the GitHub repository. Update a @botonic/cli deploy.test.ts that used an example published in the master branch of the external @botonic-examples repository. Now use the examples folder inside the monorepo so that changes can be made and tests can be tested before releasing the example bot version. --------- Co-authored-by: Marc Rabat <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This PR for the moment is just a Draft to see how we could change the functions to get the contents without using the UUID (in the code it is called id) and use only the ContentID (in the code it is called code).
The idea is to have ContentID instead of UUID hardcoded in the bot code, this way if the client deletes and recreates a node in the frontend of the flow builder but puts the same ContentID the bot will still work the same.
Context
Use the
getContentsByContentID
function if you need to get content in an action written in the bot code, instead of using thegetContentsById
. The functiongetContentsByContentID
can be useful if you want to render a content in a custom message in webchat but not in other channels like WhatsApp. For example in a rating action in webchat you want a custom message to select the stars but in Whatsapp you want it to be a normal message with buttons.Add the function
getUUIDByContentID
that will allow to get the UUID of a node using the ContentID. This is useful in case you need to pass the UUID as a payload to the botonicInit function of the plugin-flow-builder to do handoff, tracking, etc.Make the
getContentsById
function private so that it cannot be called from outside the plugin.Approach taken / Explain the design
You can no longer use the function getContentsById in the bot code, this function becomes private, instead of this function you should use getContentsByContentID.
If the BotAction node has a followUp instead of passing its followUpId (UUID) as a payload parameter, the followUpContentID will be added and using the getContentsByContentID function you can get the contents to render.
To document / Usage example
Example using a BotAction with followUp: