У Kwizbot є можливість писати свої власні action's на Javascript
Для цього використовується модуль Action Jail
<aside> 🧑💻 Якщо ви не розробник і не володієте JS, можливо, все, що описано далі, буде незрозуміло.
</aside>
Загальний вигляд модуля в інтерфейсі конструктора
Ви можете створювати нові action'и самостійно прямо з інтерфейсу.
const action_some_example() = async function() { // або можна async function action_some_example() {
// отримання всього стейту (всіх поточних змінних користувача)
const state = this.getCurrentStateJSON();
// отримання констант (або state.const)
const constants = this.getCurrentConstJSON();
// отримати параметри з JSON-конфігуації
const node_params = this.getCurrentNodeParamsJSON();
}
/**
* Sample action jail action
* @method action_jail_sample
* @return {string}
*/
const action_jail_sample = async function () {
let result = 'custom_action_works';
//You should init state first
const state = this.getCurrentStateJSON();
//You can read from current state
const user_input = state.const['name']
//You can read action config
const req_params = state.node.json_obj;
//You can set to state
this.setCurrentStateConstant('custom_action_placeholder', 'I set from code');
this.setCurrentStateConstant('user_input', user_input);
//You can send action events just by returning text values
return result;
};
module.exports = action_jail_sample;
Найпростіший приклад - це action, який встановлює значення плейсхолдера і повертає різні події залежно від уже встановлених значень у state.
Наприклад просимо користувача ввести число. Якщо він ввів <10, то ми говоримо, що це "маленьке число", а якщо >10, то говоримо, що це велике число і просимо ввести маленьке число.
Код action'а