Assinatura
7 funções do TermoWebhook para assinatura.
// npm install termo_core --save-exact
import * as webhook from "termo_core/webhook";
// ou: import { webhook } from "termo_core";| Função | Rota | O que faz |
|---|---|---|
buscar_paginador_assinatura | GET /assinatura | Lista as assinaturas paginadas |
criar_assinatura | POST /assinatura | Cadastra uma assinatura |
buscar_auto_complete_assinatura | GET /assinatura/autocomplete | Lista básica de assinaturas para seleção |
buscar_pelo_filtro_assinatura | GET /assinatura/filtro | Busca assinaturas por filtro |
buscar_pelo_id_assinatura | GET /assinatura/{id} | Busca uma assinatura pelo id |
atualizar_pelo_id_assinatura | PATCH /assinatura/{id} | Atualiza uma assinatura pelo id |
deletar_pelo_id_assinatura | DELETE /assinatura/{id} | Exclui uma assinatura pelo id |
buscar_paginador_assinatura
GET/assinatura Exige credencial
Lista as assinaturas paginadas
Leitura liberada a quem tem a permissão ler em assinaturas ou monitoramento. Lista as assinaturas não excluídas, ordenadas pelo nome do aplicativo assinante e depois pelo nome do tipo de evento. pagina começa em 1 (padrão 1) e tamanho tem padrão 10, sem máximo; valores menores que 1 viram 1. total é a quantidade de assinaturas não excluídas.
function buscar_paginador_assinatura(
credencial_de_acesso: CredencialDeAcesso,
parametros: ParametrosDeBuscarPaginadorAssinatura = {},
opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.PaginaAssinatura>import { CredencialDeAcesso } from "termo_core";
import { buscar_paginador_assinatura } from "termo_core/webhook";
const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await buscar_paginador_assinatura(credencial_de_acesso, { pagina: 1 });Argumentos
Nome
Tipo
Retorno: Promise<tipos.PaginaAssinatura> · Rust: Result<tipos::PaginaAssinatura, ErroAoChamarServico> · veja PaginaAssinatura.
criar_assinatura
POST/assinatura Exige credencial
Cadastra uma assinatura
Exige a permissão criar na área assinaturas. Inscreve um aplicativo para receber os eventos de um tipo numa versão do esquema: cada evento aceito dali em diante nessa versão vira uma entrega para url_de_destino. O aplicativo assinante e o tipo de evento precisam existir, e a versão precisa existir para o tipo e não estar desligada. Cada aplicativo assina um tipo uma vez só; para mudar de versão, atualize a assinatura existente. url_de_destino tem até 500 caracteres e precisa ser https (http só para localhost). maximo_de_tentativas vai de 1 a 20 e tempo_limite_em_segundos de 1 a 30 (padrão 5 em ambos); ativa tem padrão true. Não há segredo por assinatura: o hub assina cada entrega com a chave dele (Ed25519, chaves públicas em GET /.well-known/jwks.json) e o assinante confere só com a URL do hub e o id do próprio aplicativo.
function criar_assinatura(
credencial_de_acesso: CredencialDeAcesso,
corpo_da_requisicao: tipos.AssinaturaCriar,
opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.Assinatura>import { CredencialDeAcesso } from "termo_core";
import { criar_assinatura } from "termo_core/webhook";
const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await criar_assinatura(credencial_de_acesso, corpo_da_requisicao);Argumentos
Nome
Tipo
Retorno: Promise<tipos.Assinatura> · Rust: Result<tipos::Assinatura, ErroAoChamarServico> · veja Assinatura.
buscar_auto_complete_assinatura
GET/assinatura/autocomplete Exige credencial
Lista básica de assinaturas para seleção
Leitura liberada a quem tem a permissão ler em assinaturas ou monitoramento, por exemplo para escolher a assinatura de um reprocessamento. Devolve só id, nomes do assinante e do tipo, versão e ativa, ordenados pelo nome do aplicativo assinante e depois pelo nome do tipo, sem as excluídas. busca procura o trecho no nome do aplicativo assinante ou do tipo de evento, sem diferenciar maiúsculas. pagina começa em 1 (padrão 1) e tamanho tem padrão 10.
function buscar_auto_complete_assinatura(
credencial_de_acesso: CredencialDeAcesso,
parametros: ParametrosDeBuscarAutoCompleteAssinatura = {},
opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.PaginaAssinaturaAutoComplete>import { CredencialDeAcesso } from "termo_core";
import { buscar_auto_complete_assinatura } from "termo_core/webhook";
const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await buscar_auto_complete_assinatura(credencial_de_acesso, { busca: "..." });Argumentos
Nome
Tipo
Retorno: Promise<tipos.PaginaAssinaturaAutoComplete> · Rust: Result<tipos::PaginaAssinaturaAutoComplete, ErroAoChamarServico> · veja PaginaAssinaturaAutoComplete.
buscar_pelo_filtro_assinatura
GET/assinatura/filtro Exige credencial
Busca assinaturas por filtro
Leitura liberada a quem tem a permissão ler em assinaturas ou monitoramento. Devolve todas as assinaturas não excluídas que casam com o filtro, sem paginação, ordenadas pelo nome do aplicativo assinante e depois pelo nome do tipo de evento. aplicativo_assinante_id, tipo_de_evento_id e ativa filtram pelo valor exato. Sem filtro, devolve todas.
function buscar_pelo_filtro_assinatura(
credencial_de_acesso: CredencialDeAcesso,
parametros: ParametrosDeBuscarPeloFiltroAssinatura = {},
opcoes_da_chamada?: OpcoesDaChamada,
): Promise<Array<tipos.Assinatura>>import { CredencialDeAcesso } from "termo_core";
import { buscar_pelo_filtro_assinatura } from "termo_core/webhook";
const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await buscar_pelo_filtro_assinatura(credencial_de_acesso, { aplicativo_assinante_id: "..." });Argumentos
Nome
Tipo
Retorno: Promise<Array<tipos.Assinatura>> · Rust: Result<Vec<tipos::Assinatura>, ErroAoChamarServico>
buscar_pelo_id_assinatura
GET/assinatura/{id} Exige credencial
Busca uma assinatura pelo id
Leitura liberada a quem tem a permissão ler em assinaturas ou monitoramento. Assinatura excluída não é encontrada. Traz os nomes do aplicativo assinante e do tipo de evento, a situação da versão assinada, quantas entregas estão na fila de erro (tentativas esgotadas) e quando foi a última entrega bem-sucedida.
function buscar_pelo_id_assinatura(
credencial_de_acesso: CredencialDeAcesso,
id: string,
opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.Assinatura>import { CredencialDeAcesso } from "termo_core";
import { buscar_pelo_id_assinatura } from "termo_core/webhook";
const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await buscar_pelo_id_assinatura(credencial_de_acesso, id);Argumentos
Nome
Tipo
Retorno: Promise<tipos.Assinatura> · Rust: Result<tipos::Assinatura, ErroAoChamarServico> · veja Assinatura.
atualizar_pelo_id_assinatura
PATCH/assinatura/{id} Exige credencial
Atualiza uma assinatura pelo id
Exige a permissão editar na área assinaturas. Atualização parcial: só os campos enviados mudam; o aplicativo assinante e o tipo de evento não mudam. versao_do_esquema troca a versão assinada e precisa existir para o tipo e não estar desligada (manter a versão atual é sempre aceito). url_de_destino, maximo_de_tentativas e tempo_limite_em_segundos seguem as regras do cadastro. Desativar a assinatura (ativa: false) faz ela deixar de receber eventos novos e cancela as entregas pendentes dela na mesma hora.
function atualizar_pelo_id_assinatura(
credencial_de_acesso: CredencialDeAcesso,
id: string,
corpo_da_requisicao: tipos.AssinaturaAtualizar,
opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.Assinatura>import { CredencialDeAcesso } from "termo_core";
import { atualizar_pelo_id_assinatura } from "termo_core/webhook";
const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await atualizar_pelo_id_assinatura(credencial_de_acesso, id, corpo_da_requisicao);Argumentos
Nome
Tipo
Retorno: Promise<tipos.Assinatura> · Rust: Result<tipos::Assinatura, ErroAoChamarServico> · veja Assinatura.
deletar_pelo_id_assinatura
DELETE/assinatura/{id} Exige credencial
Exclui uma assinatura pelo id
Exige a permissão deletar na área assinaturas. A exclusão é lógica: a assinatura some das leituras, para de gerar entregas e o aplicativo pode assinar o mesmo tipo de novo, mas o registro não é apagado e não há como restaurar. As entregas pendentes dela são canceladas na mesma hora; o histórico de entregas continua até vencer a retenção.
function deletar_pelo_id_assinatura(
credencial_de_acesso: CredencialDeAcesso,
id: string,
opcoes_da_chamada?: OpcoesDaChamada,
): Promise<void>import { CredencialDeAcesso } from "termo_core";
import { deletar_pelo_id_assinatura } from "termo_core/webhook";
const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
await deletar_pelo_id_assinatura(credencial_de_acesso, id);Argumentos
Nome
Tipo
Retorno: Promise<void> · Rust: Result<(), ErroAoChamarServico> · sem corpo na resposta.
Tipos
Tipos usados pelas funções desta página. O nome é o mesmo nos dois pacotes.
Assinatura
import type { Assinatura } from "termo_core/webhook";
export interface Assinatura {
aplicativo_assinante_id: string;
aplicativo_assinante_nome: string;
ativa: boolean;
atualizada_em: string;
criada_em: string;
entregas_na_fila_de_erro: number;
id: string;
maximo_de_tentativas: number;
situacao_da_versao: string;
tempo_limite_em_segundos: number;
tipo_de_evento_id: string;
tipo_de_evento_nome: string;
ultima_entrega_em?: string | null;
url_de_destino: string;
versao_do_esquema: number;
}AssinaturaAtualizar
import type { AssinaturaAtualizar } from "termo_core/webhook";
export interface AssinaturaAtualizar {
ativa?: boolean | null;
maximo_de_tentativas?: number | null;
tempo_limite_em_segundos?: number | null;
url_de_destino?: string | null;
versao_do_esquema?: number | null;
}AssinaturaCriar
import type { AssinaturaCriar } from "termo_core/webhook";
export interface AssinaturaCriar {
aplicativo_assinante_id: string;
ativa?: boolean | null;
maximo_de_tentativas?: number | null;
tempo_limite_em_segundos?: number | null;
tipo_de_evento_id: string;
url_de_destino: string;
versao_do_esquema: number;
}PaginaAssinatura
import type { PaginaAssinatura } from "termo_core/webhook";
export interface PaginaAssinatura {
itens: Array<PaginaAssinaturaItensItem>;
pagina: number;
tamanho: number;
total: number;
}PaginaAssinaturaAutoComplete
import type { PaginaAssinaturaAutoComplete } from "termo_core/webhook";
export interface PaginaAssinaturaAutoComplete {
itens: Array<PaginaAssinaturaAutoCompleteItensItem>;
pagina: number;
tamanho: number;
total: number;
}PaginaAssinaturaAutoCompleteItensItem
import type { PaginaAssinaturaAutoCompleteItensItem } from "termo_core/webhook";
export interface PaginaAssinaturaAutoCompleteItensItem {
aplicativo_assinante_nome: string;
ativa: boolean;
id: string;
tipo_de_evento_nome: string;
versao_do_esquema: number;
}PaginaAssinaturaItensItem
import type { PaginaAssinaturaItensItem } from "termo_core/webhook";
export interface PaginaAssinaturaItensItem {
aplicativo_assinante_id: string;
aplicativo_assinante_nome: string;
ativa: boolean;
atualizada_em: string;
criada_em: string;
entregas_na_fila_de_erro: number;
id: string;
maximo_de_tentativas: number;
situacao_da_versao: string;
tempo_limite_em_segundos: number;
tipo_de_evento_id: string;
tipo_de_evento_nome: string;
ultima_entrega_em?: string | null;
url_de_destino: string;
versao_do_esquema: number;
}