Arquivo
3 funções do TermoPortal para arquivo.
// npm install termo_core --save-exact
import * as portal from "termo_core/portal";
// ou: import { portal } from "termo_core";| Função | Rota | O que faz |
|---|---|---|
criar_arquivo | POST /arquivo | Envia um arquivo (imagem ou PDF de boletim) |
buscar_pelo_id_arquivo | GET /arquivo/{caminho} | Lê um arquivo enviado |
deletar_pelo_id_arquivo | DELETE /arquivo/{caminho} | Apaga um arquivo enviado |
criar_arquivo
POST/arquivo Exige credencial
Envia um arquivo (imagem ou PDF de boletim)
Exige uma sessão válida; as pastas (produtos e boletins) exigem a permissão criar ou editar no módulo Configuracoes. Formulário multipart/form-data com os campos pasta e arquivo. Imagem de produto (produtos, até 5 MB, PNG, JPG, WEBP ou GIF) vai para o TermoBucket (bucket público, app portal-b2b, pelo token do próprio app) e a url devolvida é o endereço público permanente dela, que vai nas imagens do produto (até 15). PDF de boletim (boletins, até 20 MB) fica no disco da API e a url é relativa (/arquivo/boletins/<uuid>.pdf).
function criar_arquivo(
credencial_de_acesso: CredencialDeAcesso,
formulario: FormData,
opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.Arquivo>import { CredencialDeAcesso } from "termo_core";
import { criar_arquivo } from "termo_core/portal";
const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await criar_arquivo(credencial_de_acesso, formulario);Argumentos
Nome
Tipo
Retorno: Promise<tipos.Arquivo> · Rust: Result<tipos::Arquivo, ErroAoChamarServico> · veja Arquivo.
buscar_pelo_id_arquivo
GET/arquivo/{caminho} Exige credencial
Lê um arquivo enviado
Exige só uma sessão válida (qualquer pessoa logada no portal). Devolve o conteúdo do arquivo com o Content-Type dele (imagem ou PDF). caminho é o que vem depois de /arquivo/ na url devolvida pelo envio (ex.: produtos/<uuid>.png). Campos: baixar com o valor 1 força o download (Content-Disposition attachment); nome é o nome sugerido para o download (só letras, números, ponto, hífen e _).
function buscar_pelo_id_arquivo(
credencial_de_acesso: CredencialDeAcesso,
caminho: string,
parametros: ParametrosDeBuscarPeloIdArquivo = {},
opcoes_da_chamada?: OpcoesDaChamada,
): Promise<Uint8Array>import { CredencialDeAcesso } from "termo_core";
import { buscar_pelo_id_arquivo } from "termo_core/portal";
const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await buscar_pelo_id_arquivo(credencial_de_acesso, caminho, { baixar: "..." });Argumentos
Nome
Tipo
Retorno: Promise<Uint8Array> · Rust: Result<Vec<u8>, ErroAoChamarServico> · os bytes do arquivo.
deletar_pelo_id_arquivo
DELETE/arquivo/{caminho} Exige credencial
Apaga um arquivo enviado
Exige a permissão excluir no módulo Configuracoes do perfil de quem chama (administrador e master têm tudo). Apaga o arquivo do disco de verdade (não há exclusão lógica para arquivos). caminho é o que vem depois de /arquivo/ na url.
function deletar_pelo_id_arquivo(
credencial_de_acesso: CredencialDeAcesso,
caminho: string,
opcoes_da_chamada?: OpcoesDaChamada,
): Promise<void>import { CredencialDeAcesso } from "termo_core";
import { deletar_pelo_id_arquivo } from "termo_core/portal";
const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
await deletar_pelo_id_arquivo(credencial_de_acesso, caminho);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.
Arquivo
import type { Arquivo } from "termo_core/portal";
export interface Arquivo {
url: string;
}