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çãoRotaO que faz
criar_arquivoPOST /arquivoEnvia um arquivo (imagem ou PDF de boletim)
buscar_pelo_id_arquivoGET /arquivo/{caminho}Lê um arquivo enviado
deletar_pelo_id_arquivoDELETE /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>
Exemplo
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>
Exemplo
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>
Exemplo
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;
}

Nesta página