Evento

5 funções do TermoWebhook para evento.

// npm install termo_core --save-exact
import * as webhook from "termo_core/webhook";
// ou: import { webhook } from "termo_core";
FunçãoRotaO que faz
buscar_paginador_eventoGET /eventoLista os eventos recebidos, paginados
criar_eventoPOST /eventoPublica um evento de teste pelo painel
buscar_pelo_filtro_eventoGET /evento/filtroBusca eventos por filtro
buscar_resumo_eventoGET /evento/resumoVisão geral do hub
buscar_pelo_id_eventoGET /evento/{id}Busca um evento pelo id

buscar_paginador_evento

GET/evento Exige credencial

Lista os eventos recebidos, paginados

Exige a área monitoramento com permissão de ler. pagina começa em 1 (padrão 1) e tamanho tem padrão 10; valores menores que 1 viram 1. Ordena do recebido mais recente para o mais antigo e traz, por evento, os contadores das entregas (total, concluídas, na fila e na fila de erro), sem os dados. total é a quantidade de eventos guardados.

function buscar_paginador_evento(
  credencial_de_acesso: CredencialDeAcesso,
  parametros: ParametrosDeBuscarPaginadorEvento = {},
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.PaginaEvento>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { buscar_paginador_evento } from "termo_core/webhook";

const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await buscar_paginador_evento(credencial_de_acesso, { pagina: 1 });

Argumentos

Nome

Tipo

Retorno: Promise<tipos.PaginaEvento> · Rust: Result<tipos::PaginaEvento, ErroAoChamarServico> · veja PaginaEvento.

criar_evento

POST/evento Exige credencial

Publica um evento de teste pelo painel

Exige a área monitoramento com permissão de criar. Publica um evento em nome do aplicativo dono do tipo, registra quem publicou e cria as entregas para todas as assinaturas ativas daquela versão. O id do evento é gerado pelo hub (UUIDv7). entidade_id é obrigatório, com no máximo 200 caracteres (os espaços nas pontas são removidos). ocorrido_em é opcional e, sem ele, vale o horário do recebimento. O tipo precisa estar ativo e a versão do esquema não pode estar desligada; dados é validado contra o JSON Schema da versão e os erros voltam no 422, até 50 por resposta. Devolve o evento detalhado, já com as entregas criadas.

function criar_evento(
  credencial_de_acesso: CredencialDeAcesso,
  corpo_da_requisicao: tipos.EventoCriar,
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.EventoDetalhado>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { criar_evento } from "termo_core/webhook";

const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await criar_evento(credencial_de_acesso, corpo_da_requisicao);

Argumentos

Nome

Tipo

Retorno: Promise<tipos.EventoDetalhado> · Rust: Result<tipos::EventoDetalhado, ErroAoChamarServico> · veja EventoDetalhado.

buscar_pelo_filtro_evento

GET/evento/filtro Exige credencial

Busca eventos por filtro

Exige a área monitoramento com permissão de ler. Todos os filtros são opcionais e se somam: id do evento, tipo_de_evento_id, aplicativo_publicador_id, entidade_id (igualdade exata, sem os espaços nas pontas) e o intervalo desde/ate sobre o horário de recebimento (RFC 3339, inclusivo). Devolve no máximo 200 eventos, do recebido mais recente para o mais antigo, sem paginação e sem os dados.

function buscar_pelo_filtro_evento(
  credencial_de_acesso: CredencialDeAcesso,
  parametros: ParametrosDeBuscarPeloFiltroEvento = {},
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<Array<tipos.Evento>>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { buscar_pelo_filtro_evento } from "termo_core/webhook";

const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await buscar_pelo_filtro_evento(credencial_de_acesso, { id: "..." });

Argumentos

Nome

Tipo

Retorno: Promise<Array<tipos.Evento>> · Rust: Result<Vec<tipos::Evento>, ErroAoChamarServico>

buscar_resumo_evento

GET/evento/resumo Exige credencial

Visão geral do hub

Exige a área monitoramento com permissão de ler. Devolve os totais das últimas 24 horas (eventos recebidos, recusados, entregas concluídas e tentativas com falha, contando como falha toda resposta fora de 2xx ou sem resposta), a situação atual da fila (entregas pendentes, aguardando nova tentativa e na fila de erro), os cadastros ativos (aplicativos, tipos de evento e assinaturas) e por_hora: 24 faixas de uma hora, da mais antiga até a hora atual, com eventos, recusados e entregas com falha.

function buscar_resumo_evento(
  credencial_de_acesso: CredencialDeAcesso,
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.ResumoDosEventos>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { buscar_resumo_evento } from "termo_core/webhook";

const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await buscar_resumo_evento(credencial_de_acesso);

Argumentos

Nome

Tipo

Retorno: Promise<tipos.ResumoDosEventos> · Rust: Result<tipos::ResumoDosEventos, ErroAoChamarServico> · veja ResumoDosEventos.

buscar_pelo_id_evento

GET/evento/{id} Exige credencial

Busca um evento pelo id

Exige a área monitoramento com permissão de ler. Devolve o evento com os dados publicados, os contadores das entregas e a lista das entregas de cada assinante. Eventos mais velhos que a retenção do tipo são apagados de verdade e passam a responder 404.

function buscar_pelo_id_evento(
  credencial_de_acesso: CredencialDeAcesso,
  id: string,
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.EventoDetalhado>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { buscar_pelo_id_evento } from "termo_core/webhook";

const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await buscar_pelo_id_evento(credencial_de_acesso, id);

Argumentos

Nome

Tipo

Retorno: Promise<tipos.EventoDetalhado> · Rust: Result<tipos::EventoDetalhado, ErroAoChamarServico> · veja EventoDetalhado.

Tipos

Tipos usados pelas funções desta página. O nome é o mesmo nos dois pacotes.

Entrega

import type { Entrega } from "termo_core/webhook";

export interface Entrega {
  aplicativo_assinante_id: string;
  aplicativo_assinante_nome: string;
  assinatura_id: string;
  atualizada_em: string;
  criada_em: string;
  entidade_id: string;
  entregue_em?: string | null;
  evento_id: string;
  evento_recebido_em: string;
  id: string;
  maximo_de_tentativas: number;
  proxima_tentativa_em: string;
  quantidade_de_tentativas: number;
  situacao: string;
  tentativas_no_ciclo_atual: number;
  tipo_de_evento_nome: string;
  ultimo_erro?: string | null;
  url_de_destino: string;
  versao_do_esquema: number;
}

Evento

import type { Evento } from "termo_core/webhook";

export interface Evento {
  aplicativo_publicador_id: string;
  aplicativo_publicador_nome: string;
  entidade_id: string;
  entregas_concluidas: number;
  entregas_na_fila: number;
  entregas_na_fila_de_erro: number;
  id: string;
  ocorrido_em: string;
  publicado_pelo_email?: string | null;
  quantidade_de_entregas: number;
  recebido_em: string;
  tipo_de_evento_id: string;
  tipo_de_evento_nome: string;
  versao_do_esquema: number;
}

EventoCriar

import type { EventoCriar } from "termo_core/webhook";

export interface EventoCriar {
  dados: unknown;
  entidade_id: string;
  ocorrido_em?: string | null;
  tipo_de_evento_id: string;
  versao_do_esquema: number;
}

EventoDetalhado

import type { EventoDetalhado } from "termo_core/webhook";

export type EventoDetalhado = Evento & EventoDetalhadoParte2;

EventoDetalhadoParte2

import type { EventoDetalhadoParte2 } from "termo_core/webhook";

export interface EventoDetalhadoParte2 {
  dados: unknown;
  entregas: Array<Entrega>;
}

PaginaEvento

import type { PaginaEvento } from "termo_core/webhook";

export interface PaginaEvento {
  itens: Array<PaginaEventoItensItem>;
  pagina: number;
  tamanho: number;
  total: number;
}

PaginaEventoItensItem

import type { PaginaEventoItensItem } from "termo_core/webhook";

export interface PaginaEventoItensItem {
  aplicativo_publicador_id: string;
  aplicativo_publicador_nome: string;
  entidade_id: string;
  entregas_concluidas: number;
  entregas_na_fila: number;
  entregas_na_fila_de_erro: number;
  id: string;
  ocorrido_em: string;
  publicado_pelo_email?: string | null;
  quantidade_de_entregas: number;
  recebido_em: string;
  tipo_de_evento_id: string;
  tipo_de_evento_nome: string;
  versao_do_esquema: number;
}

ResumoDosEventos

import type { ResumoDosEventos } from "termo_core/webhook";

export interface ResumoDosEventos {
  aplicativos_ativos: number;
  assinaturas_ativas: number;
  entregas_aguardando_nova_tentativa: number;
  entregas_na_fila_de_erro: number;
  entregas_pendentes: number;
  entregues_nas_ultimas_24_horas: number;
  eventos_nas_ultimas_24_horas: number;
  por_hora: Array<ResumoDosEventosPorHora>;
  recusados_nas_ultimas_24_horas: number;
  tentativas_com_falha_nas_ultimas_24_horas: number;
  tipos_de_evento_ativos: number;
}

ResumoDosEventosPorHora

import type { ResumoDosEventosPorHora } from "termo_core/webhook";

export interface ResumoDosEventosPorHora {
  entregas_com_falha: number;
  eventos: number;
  hora: string;
  recusados: number;
}

Nesta página