Skip to content
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

fix(bot): ⚡ fix fallback refactor #568

Conversation

leifermendez
Copy link
Member

Que tipo de Pull Request es?

  • Mejoras
  • Bug
  • Docs / tests

Descripción

Por favor agrega una descripción de tu aporte para tener más contexto y poder avanzar más rápido. Si es de ayuda puedes usar plataformar como https://www.loom.com/ para grabar un video.

Forma parte de este proyecto.

@leifermendez leifermendez merged commit 3fdd49f into 545-cuando-se-activa-fallback-dentro-de-un-addanswer-con-capture-true-no-espera-el-capture-true-y-se-salta-al-siguiente-addanswer Jan 28, 2023
@leifermendez
Copy link
Member Author

const {
    createBot,
    createProvider,
    createFlow,
    addKeyword,
} = require('@bot-whatsapp/bot')

const QRPortalWeb = require('@bot-whatsapp/portal')
const BaileysProvider = require('@bot-whatsapp/provider/baileys')
const MockAdapter = require('@bot-whatsapp/database/mock')

const delay = (ms) => new Promise((resolve) => setTimeout(resolve,ms))

const fakeHTTP = async () => {
    await delay(1000)
    return ['Gracias por tu email se ha validado de manera correcta']
}

const flowGracias = addKeyword('gracias').addAnswer('De nada!')

const flowPrincipal = addKeyword('hola')
.addAnswer(
    "🙌 ¿CUal es tu email?",
    {
      capture: true,
    },
    async (ctx, { flowDynamic, fallBack }) => {

        
        const validation = ctx.body.includes('@')
        
        if(validation) {
            const getDataFromApi = await fakeHTTP()
            return flowDynamic(getDataFromApi)
        }
        return fallBack(validation)

    }
  )
  .addAnswer(
    "Continuamos....",
  )
  .addAnswer(
    "¿Cual es tu edad?",
    {capture:true},
    async (ctx,{flowDynamic, fallBack}) => {
        if(ctx.body !== '18'){
            await delay(50)
            return fallBack(false, 'Ups creo que no eres mayor de edad')
        }
        return flowDynamic('Bien tu edad es correcta!')
    }
  ).addAnswer('Puedes pasar', null, null, flowGracias)


const main = async () => {
    const adapterDB = new MockAdapter()
    const adapterFlow = createFlow([flowPrincipal])
    const adapterProvider = createProvider(BaileysProvider)

    createBot({
        flow: adapterFlow,
        provider: adapterProvider,
        database: adapterDB,
    })

}

main()

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant