Aplicativo
7 funções do TermoBucket para aplicativo.
// npm install termo_core --save-exact
import * as bucket from "termo_core/bucket";
// ou: import { bucket } from "termo_core";| Função | Rota | O que faz |
|---|---|---|
buscar_paginador_aplicativo | GET /aplicativo | Lista os aplicativos com paginação |
buscar_auto_complete_aplicativo | GET /aplicativo/autocomplete | Lista básica de aplicativos para seleção |
buscar_pelo_filtro_aplicativo | GET /aplicativo/filtro | Busca aplicativos por filtro |
buscar_pelo_id_aplicativo | GET /aplicativo/{id} | Busca um aplicativo pelo id |
atualizar_pelo_id_aplicativo | PATCH /aplicativo/{id} | Atualiza um aplicativo pelo id |
deletar_pelo_id_aplicativo | DELETE /aplicativo/{id} | Exclui um aplicativo pelo id |
deletar_arquivos_aplicativo | DELETE /aplicativo/{id}/arquivos | Apaga todos os arquivos de um aplicativo |
buscar_paginador_aplicativo
GET/aplicativo Exige credencial
Lista os aplicativos com paginação
Exige qualquer permissão da área aplicativos. Ordena pelo nome e traz o consumo atual de cada aplicativo (quantidade e bytes dos arquivos públicos e privados). pagina começa em 1 (padrão 1; valores menores viram 1). tamanho tem padrão 10, sem máximo; valores menores que 1 viram 1. total conta todos os aplicativos não excluídos.
function buscar_paginador_aplicativo(
credencial_de_acesso: CredencialDeAcesso,
parametros: ParametrosDeBuscarPaginadorAplicativo = {},
opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.PaginaAplicativo>import { CredencialDeAcesso } from "termo_core";
import { buscar_paginador_aplicativo } from "termo_core/bucket";
const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await buscar_paginador_aplicativo(credencial_de_acesso, { pagina: 1 });Argumentos
Nome
Tipo
Retorno: Promise<tipos.PaginaAplicativo> · Rust: Result<tipos::PaginaAplicativo, ErroAoChamarServico> · veja PaginaAplicativo.
buscar_auto_complete_aplicativo
GET/aplicativo/autocomplete Exige credencial
Lista básica de aplicativos para seleção
Exige qualquer permissão da área aplicativos. Devolve só id, slug e nome, em ordem alfabética de nome. busca procura por trecho do nome ou do slug, sem diferenciar maiúsculas. pagina começa em 1 (padrão 1) e tamanho tem padrão 10, sem máximo; valores menores que 1 viram 1. total conta os aplicativos que casam com a busca.
function buscar_auto_complete_aplicativo(
credencial_de_acesso: CredencialDeAcesso,
parametros: ParametrosDeBuscarAutoCompleteAplicativo = {},
opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.PaginaAplicativoAutoComplete>import { CredencialDeAcesso } from "termo_core";
import { buscar_auto_complete_aplicativo } from "termo_core/bucket";
const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await buscar_auto_complete_aplicativo(credencial_de_acesso, { busca: "..." });Argumentos
Nome
Tipo
Retorno: Promise<tipos.PaginaAplicativoAutoComplete> · Rust: Result<tipos::PaginaAplicativoAutoComplete, ErroAoChamarServico> · veja PaginaAplicativoAutoComplete.
buscar_pelo_filtro_aplicativo
GET/aplicativo/filtro Exige credencial
Busca aplicativos por filtro
Exige qualquer permissão da área aplicativos. Devolve todos os aplicativos não excluídos que casam com o filtro, sem paginação, em ordem alfabética de nome, cada um com o consumo atual. nome e slug procuram por trecho, sem diferenciar maiúsculas; ativo filtra pela situação. Sem filtro, devolve todos.
function buscar_pelo_filtro_aplicativo(
credencial_de_acesso: CredencialDeAcesso,
parametros: ParametrosDeBuscarPeloFiltroAplicativo = {},
opcoes_da_chamada?: OpcoesDaChamada,
): Promise<Array<tipos.Aplicativo>>import { CredencialDeAcesso } from "termo_core";
import { buscar_pelo_filtro_aplicativo } from "termo_core/bucket";
const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await buscar_pelo_filtro_aplicativo(credencial_de_acesso, { nome: "..." });Argumentos
Nome
Tipo
Retorno: Promise<Array<tipos.Aplicativo>> · Rust: Result<Vec<tipos::Aplicativo>, ErroAoChamarServico>
buscar_pelo_id_aplicativo
GET/aplicativo/{id} Exige credencial
Busca um aplicativo pelo id
Exige qualquer permissão da área aplicativos. O aplicativo é cada sistema da Termotubos que guarda arquivos no TermoBucket: slug é o identificador do app no TermoAuth e o prefixo dos arquivos dele, tamanho_maximo é o limite em bytes por arquivo e tipos_permitidos são os tipos MIME aceitos (image/* aceita qualquer imagem). Traz o consumo atual: quantidade e bytes dos arquivos públicos e privados não excluídos. Aplicativo excluído responde 404.
function buscar_pelo_id_aplicativo(
credencial_de_acesso: CredencialDeAcesso,
id: string,
opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.Aplicativo>import { CredencialDeAcesso } from "termo_core";
import { buscar_pelo_id_aplicativo } from "termo_core/bucket";
const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await buscar_pelo_id_aplicativo(credencial_de_acesso, id);Argumentos
Nome
Tipo
Retorno: Promise<tipos.Aplicativo> · Rust: Result<tipos::Aplicativo, ErroAoChamarServico> · veja Aplicativo.
atualizar_pelo_id_aplicativo
PATCH/aplicativo/{id} Exige credencial
Atualiza um aplicativo pelo id
Exige a permissão editar da área aplicativos. Atualização parcial: só os campos enviados mudam e campo desconhecido é recusado. nome não pode ficar vazio (até 120 caracteres). tamanho_maximo é o limite em bytes por arquivo, maior que zero e de no máximo 99.614.720 (95 MiB, limite de envio pelo Cloudflare Workers). tipos_permitidos substitui a lista inteira: de 1 a 50 tipos MIME no formato tipo/subtipo, aceitando tipo/* (ex.: image/*); os valores são gravados em minúsculas, sem repetição. ativo = false faz a API de arquivos recusar o aplicativo com 403. O slug não muda. Vale em até 5 minutos para a API de arquivos (cache do aplicativo).
function atualizar_pelo_id_aplicativo(
credencial_de_acesso: CredencialDeAcesso,
id: string,
corpo_da_requisicao: tipos.AplicativoAtualizar,
opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.Aplicativo>import { CredencialDeAcesso } from "termo_core";
import { atualizar_pelo_id_aplicativo } from "termo_core/bucket";
const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await atualizar_pelo_id_aplicativo(credencial_de_acesso, id, corpo_da_requisicao);Argumentos
Nome
Tipo
Retorno: Promise<tipos.Aplicativo> · Rust: Result<tipos::Aplicativo, ErroAoChamarServico> · veja Aplicativo.
deletar_pelo_id_aplicativo
DELETE/aplicativo/{id} Exige credencial
Exclui um aplicativo pelo id
Exige a permissão deletar da área aplicativos. A exclusão é lógica e só é aceita quando o aplicativo não tem arquivos: com arquivos responde 409, e é preciso apagá-los antes (DELETE /aplicativo/{id}/arquivos). Se o aplicativo voltar a chamar a API de arquivos, ele é cadastrado de novo com os limites padrão.
function deletar_pelo_id_aplicativo(
credencial_de_acesso: CredencialDeAcesso,
id: string,
opcoes_da_chamada?: OpcoesDaChamada,
): Promise<void>import { CredencialDeAcesso } from "termo_core";
import { deletar_pelo_id_aplicativo } from "termo_core/bucket";
const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
await deletar_pelo_id_aplicativo(credencial_de_acesso, id);Argumentos
Nome
Tipo
Retorno: Promise<void> · Rust: Result<(), ErroAoChamarServico> · sem corpo na resposta.
deletar_arquivos_aplicativo
DELETE/aplicativo/{id}/arquivos Exige credencial
Apaga todos os arquivos de um aplicativo
Só para master do TermoAuth (além da permissão deletar da área aplicativos). Apaga no R2 todos os objetos do prefixo do aplicativo nos buckets público e privado e marca os registros dos arquivos como excluídos. Se o R2 falhar, nada é marcado como excluído e a chamada pode ser repetida. Devolve quantos objetos saíram do R2 e quantos registros foram marcados.
function deletar_arquivos_aplicativo(
credencial_de_acesso: CredencialDeAcesso,
id: string,
opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.ArquivosApagados>import { CredencialDeAcesso } from "termo_core";
import { deletar_arquivos_aplicativo } from "termo_core/bucket";
const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await deletar_arquivos_aplicativo(credencial_de_acesso, id);Argumentos
Nome
Tipo
Retorno: Promise<tipos.ArquivosApagados> · Rust: Result<tipos::ArquivosApagados, ErroAoChamarServico> · veja ArquivosApagados.
Tipos
Tipos usados pelas funções desta página. O nome é o mesmo nos dois pacotes.
Aplicativo
import type { Aplicativo } from "termo_core/bucket";
export interface Aplicativo {
arquivos_privados: number;
arquivos_publicos: number;
ativo: boolean;
atualizado_em: string;
bytes_privados: number;
bytes_publicos: number;
criado_em: string;
id: string;
nome: string;
slug: string;
tamanho_maximo: number;
tipos_permitidos: Array<string>;
}AplicativoAtualizar
import type { AplicativoAtualizar } from "termo_core/bucket";
export interface AplicativoAtualizar {
ativo?: boolean | null;
nome?: string | null;
tamanho_maximo?: number | null;
tipos_permitidos?: Array<string> | null;
}ArquivosApagados
import type { ArquivosApagados } from "termo_core/bucket";
export interface ArquivosApagados {
objetos_apagados: number;
registros_apagados: number;
}PaginaAplicativo
import type { PaginaAplicativo } from "termo_core/bucket";
export interface PaginaAplicativo {
itens: Array<PaginaAplicativoItensItem>;
pagina: number;
tamanho: number;
total: number;
}PaginaAplicativoAutoComplete
import type { PaginaAplicativoAutoComplete } from "termo_core/bucket";
export interface PaginaAplicativoAutoComplete {
itens: Array<PaginaAplicativoAutoCompleteItensItem>;
pagina: number;
tamanho: number;
total: number;
}PaginaAplicativoAutoCompleteItensItem
import type { PaginaAplicativoAutoCompleteItensItem } from "termo_core/bucket";
export interface PaginaAplicativoAutoCompleteItensItem {
id: string;
nome: string;
slug: string;
}PaginaAplicativoItensItem
import type { PaginaAplicativoItensItem } from "termo_core/bucket";
export interface PaginaAplicativoItensItem {
arquivos_privados: number;
arquivos_publicos: number;
ativo: boolean;
atualizado_em: string;
bytes_privados: number;
bytes_publicos: number;
criado_em: string;
id: string;
nome: string;
slug: string;
tamanho_maximo: number;
tipos_permitidos: Array<string>;
}