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:
    image

Está com dúvidas?

Veja o gabarito para esta etapa ou acompanhe nosso [office hours] no canal VTEX Developers(https://www.youtube.com/c/VTEXDevelopers)


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