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
-
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:_10import { Clients } from '../clients/index' -
Agora, precisamos utilizar o
EventContextque foi configurado previamente. Importe-o atualizando o método. É possível fazer como abaixo:_10//node/event/liveUsersUpdate.ts_10import { Clients } from './../clients/index'_10+import { EventContext } from '@vtex/api'_10_10+export async function updateLiveUsers(ctx: EventContext<Clients>) {_10..._10}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. -
Agora, para utilizar o cliente de analytics, faça o seguinte:
_10//node/event/liveUsersUpdate.ts_10export async function updateLiveUsers(ctx: EventContext<Clients>) {_10+ const liveUsersProducts = await ctx.clients.analytics.getLiveUsers()_10+ console.log('LIVE USERS: ', liveUsersProducts)_10+ return true_10} -
Finalmente, rode o comando
vtex linke, para cada evento disparado, você deve ver os dados pegos do analytics. O resultado é similar ao da imagem abaixo: