codigoencasa / builderbot

🤖 Crear Chatbot WhatsApp en minutos. Únete a este proyecto OpenSource
https://www.builderbot.app
MIT License
2.44k stars 838 forks source link

Feat/update-type-gotoflow #980

Closed enrique-holguin closed 9 months ago

enrique-holguin commented 9 months ago

Que tipo de Pull Request es?

Descripción

Se añade a los tipos de gotoFlow, el segundo parámetro opcional, llamado step. Permite ir directamente a un paso específico de un flujo en concreto, son números enteros empezando desde 0.

Flujos :

//Escribiendo la palabara PASO permite saltarse el paso uno 
//e ir directamente a la segunda pregunta

const FLOW_FORM = addKeyword<BaileysProvider, MemoryDB>(EVENTS.WELCOME).addAnswer("Por favor escriba su nombre",{capture:true,delay:600},async (ctx,ctxFn) => {
  const {body,from} = ctx
  await ctxFn.state.update({name:body})
}).addAnswer("Por favor escriba su correo",{capture:true,delay:600}, async(ctx,ctxFn) => {
  const {body,from} = ctx
  if (!body.includes("@")) return ctxFn.fallBack("Correo no válido")
  await ctxFn.state.update({email:body})
  const userState = ctxFn.state.getMyState()
  return ctxFn.endFlow(`Perfecto ${userState?.name ?? (ctx as unknown as {pushName:string})?.pushName} \nEmail : ${userState?.email ?? "No hay correo registrado"}`)
})

const FLOW_STEP = addKeyword("PASO").addAction(async (ctx,ctxFn) => {
  return ctxFn.gotoFlow(FLOW_FORM,1)
})

Comentario Adicional :

Se tuvo que trabajar sobre un commit anterior de la base del branch typescript, ya que los 2 últimos commits presentaban conflictos en los tipos a la hora de hacer el build del proyecto.

image

Forma parte de este proyecto.