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çãoRotaO que faz
buscar_paginador_aplicativoGET /aplicativoLista os aplicativos com paginação
buscar_auto_complete_aplicativoGET /aplicativo/autocompleteLista básica de aplicativos para seleção
buscar_pelo_filtro_aplicativoGET /aplicativo/filtroBusca aplicativos por filtro
buscar_pelo_id_aplicativoGET /aplicativo/{id}Busca um aplicativo pelo id
atualizar_pelo_id_aplicativoPATCH /aplicativo/{id}Atualiza um aplicativo pelo id
deletar_pelo_id_aplicativoDELETE /aplicativo/{id}Exclui um aplicativo pelo id
deletar_arquivos_aplicativoDELETE /aplicativo/{id}/arquivosApaga 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>
Exemplo
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>
Exemplo
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>>
Exemplo
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>
Exemplo
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>
Exemplo
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>
Exemplo
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>
Exemplo
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>;
}

Nesta página