Actualización de función endFlow()

Actualización de función endFlow()
This commit is contained in:
Leifer Mendez
2023-02-09 17:17:48 +01:00
committed by GitHub

View File

@@ -152,57 +152,65 @@ const flowString = addKeyword('hola')
## endFlow() ## endFlow()
Esta funcion se utliza para finalizar un flujo con dos o más addAnswer. Un ejemplo de uso sería registrar 3 datos de un usuario en 3 preguntas distinas y Esta funcion se utliza para **finalizar un flujo con dos** o más addAnswer. Un ejemplo de uso sería registrar 3 datos de un usuario en 3 preguntas distinas y
que el usuario pueda finalizar por él mismo el flujo. que el usuario **pueda finalizar por él mismo el flujo**.
Como podrás comprobar en el ejemplo siguiente, se puede vincular flowDynamic y todas sus funciones; como por ejemplo botones. Como podrás comprobar en el ejemplo siguiente, se puede vincular flowDynamic y todas sus funciones; como por ejemplo botones.
```js ```js
const flowFormulario = addKeyword(['Hola']) let nombre;
let apellidos;
let telefono;
const flowFormulario = addKeyword(['Hola','⬅️ Volver al Inicio'])
.addAnswer( .addAnswer(
['Hola!', 'Escriba su *Nombre* para generar su solicitud'], ['Hola!','Para enviar el formulario necesito unos datos...' ,'Escriba su *Nombre*'],
{ capture: true, buttons: [{ body: '❌ Cancelar solicitud' }] }, { capture: true, buttons: [{ body: '❌ Cancelar solicitud' }] },
async (ctx, { flowDynamic, endFlow }) => { async (ctx, { flowDynamic, endFlow }) => {
if (ctx.body == '❌ Cancelar solicitud') { if (ctx.body == '❌ Cancelar solicitud')
await flowDynamic([ return endFlow({body: '❌ Su solicitud ha sido cancelada ❌', // Aquí terminamos el flow si la condicion se comple
{ buttons:[{body:'⬅️ Volver al Inicio' }] // Y además, añadimos un botón por si necesitas derivarlo a otro flow
body: '❌ *Su solicitud de cita ha sido cancelada* ❌',
buttons: [{ body: '⬅️ Volver al Inicio' }],
}, })
]) nombre = ctx.body
return endFlow() return flowDynamic(`Encantado *${nombre}*, continuamos...`)
}
} }
) )
.addAnswer( .addAnswer(
['También necesito tus dos apellidos'], ['También necesito tus dos apellidos'],
{ capture: true, buttons: [{ body: '❌ Cancelar solicitud' }] }, { capture: true, buttons: [{ body: '❌ Cancelar solicitud' }] },
async (ctx, { flowDynamic, endFlow }) => { async (ctx, { flowDynamic, endFlow }) => {
if (ctx.body == '❌ Cancelar solicitud') { if (ctx.body == '❌ Cancelar solicitud')
await flowDynamic([ return endFlow({body: '❌ Su solicitud ha sido cancelada ❌',
{ buttons:[{body:'⬅️ Volver al Inicio' }]
body: '❌ *Su solicitud de cita ha sido cancelada* ❌',
buttons: [{ body: '⬅️ Volver al Inicio' }],
}, })
]) apellidos = ctx.body
return endFlow() return flowDynamic(`Perfecto *${nombre}*, por último...`)
}
} }
) )
.addAnswer( .addAnswer(
['Dejeme su número de teléfono y le llamaré lo antes posible.'], ['Dejeme su número de teléfono y le llamaré lo antes posible.'],
{ capture: true, buttons: [{ body: '❌ Cancelar solicitud' }] }, { capture: true, buttons: [{ body: '❌ Cancelar solicitud' }] },
async (ctx, { flowDynamic, endFlow }) => { async (ctx, { flowDynamic, endFlow }) => {
if (ctx.body == '❌ Cancelar solicitud') { if (ctx.body == '❌ Cancelar solicitud')
await flowDynamic([ return endFlow({body: '❌ Su solicitud ha sido cancelada ❌',
{ buttons:[{body:'⬅️ Volver al Inicio' }]
body: '❌ *Su solicitud de cita ha sido cancelada* ❌', })
buttons: [{ body: '⬅️ Volver al Inicio' }],
},
]) telefono = ctx.body
return endFlow() await delay(2000)
} return flowDynamic(`Estupendo *${nombre}*! te dejo el resumen de tu formulario
\n- Nombre y apellidos: *${nombre} ${apellidos}*
\n- Telefono: *${telefono}*`)
} }
) )
``` ```
--- ---