Utilizando eventos como gatilhos

Utilizando eventos como gatilhos

Introdução

Com o cliente de analytics implementado, nós queremos utilizar os eventos como gatilhos para os requests. Isso significa que, para cada evento escutado, queremos fazer um request para a app de analytics, de forma que, a cada X segundos, tenhamos novos dados em Live Products.

Eventos

No VTEX IO, eventos são usualmente utilizados como gatilhos para outras ações, como enviar emails para o cliente final. Para implementar isto, é necessário configurar nossa app do cliente e o handler de eventos.

Usando eventos como gatilhos para fazer um request

  1. Com o cliente de analytics implementado, precisamos apenas utilizá-lo no handler de eventos. Primeiro, no arquivo node/event/liveUsersUpdate.ts, importe o cliente que implementamos no passo anterior:

    import { Clients } from '../clients/index'
    
  2. Agora, precisamos utilizar o EventContext que foi configurado previamente. Importe-o atualizando o método. É possível fazer como abaixo:

    //node/event/liveUsersUpdate.ts
    import { Clients } from './../clients/index'
    +import { EventContext } from '@vtex/api'
    
    +export async function updateLiveUsers(ctx: EventContext<Clients>) {
    ...
    }
    

    Nota: você também pode declarar globalmente seu contexto de evento, através do arquivo /node/index.ts. Se você fizer desta forma, não é necessário importá-lo em cada arquivo que você precise utilizá-lo.

  3. Agora, para utilizar o cliente de analytics, faça o seguinte:

    //node/event/liveUsersUpdate.ts
    export async function updateLiveUsers(ctx: EventContext<Clients>) {
    +  const liveUsersProducts = await ctx.clients.analytics.getLiveUsers()
    +  console.log('LIVE USERS: ', liveUsersProducts)
    +  return true
    }
    
  4. Finalmente, rode o comando vtex link e, para cada evento disparado, você deve ver os dados pegos do analytics. O resultado é similar ao da imagem abaixo:
    imageimage

Está com dúvidas?

Veja o gabarito para esta etapa ou participe do nosso office hours


Ajude-nos a fazer este conteúdo melhor!

Os cursos do VTEX IO são de código aberto. Se você perceber algum problema, pode abrir um pull request!

Faça uma contribuição

ou abra uma issue


Next step