Perfil
7 funções do TermoPortal para perfil.
// 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 |
|---|---|---|
buscar_paginador_perfil | GET /perfil | Lista os perfis paginados |
criar_perfil | POST /perfil | Cadastra um perfil de acesso |
buscar_auto_complete_perfil | GET /perfil/autocomplete | Lista básica de perfis para seleção |
buscar_pelo_filtro_perfil | GET /perfil/filtro | Busca perfis por filtro |
buscar_pelo_id_perfil | GET /perfil/{id} | Busca um perfil pelo id |
atualizar_pelo_id_perfil | PATCH /perfil/{id} | Atualiza um perfil de acesso |
deletar_pelo_id_perfil | DELETE /perfil/{id} | Exclui um perfil de acesso |
buscar_paginador_perfil
GET/perfil Exige credencial
Lista os perfis paginados
Exige só uma sessão válida (qualquer pessoa logada no portal). Ordem alfabética. Paginado com 50 itens por página (fixo); pagina começa em 1 (padrão 1). A resposta traz itens, total (registros que casam), pagina e tamanho.
function buscar_paginador_perfil(
credencial_de_acesso: CredencialDeAcesso,
parametros: ParametrosDeBuscarPaginadorPerfil = {},
opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.PaginaPerfil>import { CredencialDeAcesso } from "termo_core";
import { buscar_paginador_perfil } from "termo_core/portal";
const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await buscar_paginador_perfil(credencial_de_acesso, { pagina: 1 });Argumentos
Nome
Tipo
Retorno: Promise<tipos.PaginaPerfil> · Rust: Result<tipos::PaginaPerfil, ErroAoChamarServico> · veja PaginaPerfil.
criar_perfil
POST/perfil Exige credencial
Cadastra um perfil de acesso
Exige perfil administrador ou master. Perfil de acesso (RBAC) das pessoas do portal. nome obrigatório, até 120 caracteres e único (o slug sai do nome); resumo até 500; tipo é termotubos ou cliente; base: true marca o perfil dado ao cliente novo (só um, só de cliente, nunca administrador); permissoes por módulo (Dashboard, Pedidos, Financeiro, Catalogo, Cotacoes, Assistente, Configuracoes) com ver, criar, editar, excluir e a exibição no menu; permissoes_administrativas entre contexto_administrativo.entrar, unidades.ler, pedidos.ler_todos, cotacoes.ler_todas, financeiro.ler_todos e usuarios.gerenciar. Cada item de permissoes tem modulo, pagina (página do módulo; * vale para o módulo inteiro, padrão), ver, criar, editar, excluir (booleanos) e mostrar_na_sidebar e mostrar_nas_configuracoes (booleanos, exibição no menu). Campos: base (booleano) marca o perfil dado ao cliente novo (só um, só de cliente).
function criar_perfil(
credencial_de_acesso: CredencialDeAcesso,
corpo_da_requisicao: tipos.PerfilCriar,
opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.Perfil>import { CredencialDeAcesso } from "termo_core";
import { criar_perfil } from "termo_core/portal";
const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await criar_perfil(credencial_de_acesso, corpo_da_requisicao);Argumentos
Nome
Tipo
Retorno: Promise<tipos.Perfil> · Rust: Result<tipos::Perfil, ErroAoChamarServico> · veja Perfil.
buscar_auto_complete_perfil
GET/perfil/autocomplete Exige credencial
Lista básica de perfis para seleção
Exige só uma sessão válida (qualquer pessoa logada no portal). Devolve só id e nome, em ordem alfabética. busca procura no nome. tamanho tem padrão 10 e vai de 1 a 50; pagina começa em 1. A resposta traz itens, total, pagina e tamanho.
function buscar_auto_complete_perfil(
credencial_de_acesso: CredencialDeAcesso,
parametros: ParametrosDeBuscarAutoCompletePerfil = {},
opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.PaginaPerfilAutoComplete>import { CredencialDeAcesso } from "termo_core";
import { buscar_auto_complete_perfil } from "termo_core/portal";
const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await buscar_auto_complete_perfil(credencial_de_acesso, { busca: "..." });Argumentos
Nome
Tipo
Retorno: Promise<tipos.PaginaPerfilAutoComplete> · Rust: Result<tipos::PaginaPerfilAutoComplete, ErroAoChamarServico> · veja PaginaPerfilAutoComplete.
buscar_pelo_filtro_perfil
GET/perfil/filtro Exige credencial
Busca perfis por filtro
Exige só uma sessão válida (qualquer pessoa logada no portal). Devolve os perfis não excluídos que casam com o filtro, até 50 por página (pagina, a partir de 1, padrão 1), em ordem alfabética. nome procura o trecho; slug, base e tipo são exatos.
function buscar_pelo_filtro_perfil(
credencial_de_acesso: CredencialDeAcesso,
parametros: ParametrosDeBuscarPeloFiltroPerfil = {},
opcoes_da_chamada?: OpcoesDaChamada,
): Promise<Array<tipos.Perfil>>import { CredencialDeAcesso } from "termo_core";
import { buscar_pelo_filtro_perfil } from "termo_core/portal";
const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await buscar_pelo_filtro_perfil(credencial_de_acesso, { nome: "..." });Argumentos
Nome
Tipo
Retorno: Promise<Array<tipos.Perfil>> · Rust: Result<Vec<tipos::Perfil>, ErroAoChamarServico>
buscar_pelo_id_perfil
GET/perfil/{id} Exige credencial
Busca um perfil pelo id
Exige só uma sessão válida (qualquer pessoa logada no portal). Perfil excluído não é encontrado. Traz permissões e quantidade de pessoas.
function buscar_pelo_id_perfil(
credencial_de_acesso: CredencialDeAcesso,
id: string,
opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.Perfil>import { CredencialDeAcesso } from "termo_core";
import { buscar_pelo_id_perfil } from "termo_core/portal";
const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await buscar_pelo_id_perfil(credencial_de_acesso, id);Argumentos
Nome
Tipo
Retorno: Promise<tipos.Perfil> · Rust: Result<tipos::Perfil, ErroAoChamarServico> · veja Perfil.
atualizar_pelo_id_perfil
PATCH/perfil/{id} Exige credencial
Atualiza um perfil de acesso
Exige perfil administrador ou master. Mesmas regras do cadastro; o tipo não muda. permissoes e permissoes_administrativas, quando enviados, substituem as anteriores. Cada item de permissoes tem modulo, pagina (página do módulo; * vale para o módulo inteiro, padrão), ver, criar, editar, excluir (booleanos) e mostrar_na_sidebar e mostrar_nas_configuracoes (booleanos, exibição no menu). Atualização parcial: campo ausente mantém o valor atual. Campos: nome é obrigatório quando enviado (mesmo limite do cadastro); resumo até 500 caracteres; base (booleano) marca o perfil dado ao cliente novo (só um, só de cliente).
function atualizar_pelo_id_perfil(
credencial_de_acesso: CredencialDeAcesso,
id: string,
corpo_da_requisicao: tipos.PerfilAtualizar,
opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.Perfil>import { CredencialDeAcesso } from "termo_core";
import { atualizar_pelo_id_perfil } from "termo_core/portal";
const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await atualizar_pelo_id_perfil(credencial_de_acesso, id, corpo_da_requisicao);Argumentos
Nome
Tipo
Retorno: Promise<tipos.Perfil> · Rust: Result<tipos::Perfil, ErroAoChamarServico> · veja Perfil.
deletar_pelo_id_perfil
DELETE/perfil/{id} Exige credencial
Exclui um perfil de acesso
Exige perfil administrador ou master. Recusa o perfil base e perfis com pessoas vinculadas. A exclusão é lógica: o registro some das leituras, mas a linha não é apagada.
function deletar_pelo_id_perfil(
credencial_de_acesso: CredencialDeAcesso,
id: string,
opcoes_da_chamada?: OpcoesDaChamada,
): Promise<void>import { CredencialDeAcesso } from "termo_core";
import { deletar_pelo_id_perfil } from "termo_core/portal";
const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
await deletar_pelo_id_perfil(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.
PaginaPerfil
import type { PaginaPerfil } from "termo_core/portal";
export interface PaginaPerfil {
itens: Array<PaginaPerfilItensItem>;
pagina: number;
tamanho: number;
total: number;
}PaginaPerfilAutoComplete
import type { PaginaPerfilAutoComplete } from "termo_core/portal";
export interface PaginaPerfilAutoComplete {
itens: Array<PaginaPerfilAutoCompleteItensItem>;
pagina: number;
tamanho: number;
total: number;
}PaginaPerfilAutoCompleteItensItem
import type { PaginaPerfilAutoCompleteItensItem } from "termo_core/portal";
export interface PaginaPerfilAutoCompleteItensItem {
id: string;
nome: string;
}PaginaPerfilItensItem
import type { PaginaPerfilItensItem } from "termo_core/portal";
export interface PaginaPerfilItensItem {
atualizado_em: string;
base: boolean;
criado_em: string;
id: string;
nome: string;
permissoes: Array<PerfilPermissao>;
permissoes_administrativas: Array<string>;
quantidade_pessoas: number;
resumo?: string | null;
slug: string;
tipo: string;
}Perfil
import type { Perfil } from "termo_core/portal";
export interface Perfil {
atualizado_em: string;
base: boolean;
criado_em: string;
id: string;
nome: string;
permissoes: Array<PerfilPermissao>;
permissoes_administrativas: Array<string>;
quantidade_pessoas: number;
resumo?: string | null;
slug: string;
tipo: string;
}PerfilAtualizar
import type { PerfilAtualizar } from "termo_core/portal";
export interface PerfilAtualizar {
base?: boolean | null;
nome?: string | null;
permissoes?: Array<PerfilPermissaoEntrada> | null;
permissoes_administrativas?: Array<string> | null;
resumo?: string | null;
}PerfilCriar
import type { PerfilCriar } from "termo_core/portal";
export interface PerfilCriar {
base?: boolean | null;
nome: string;
permissoes?: Array<PerfilPermissaoEntrada> | null;
permissoes_administrativas?: Array<string> | null;
resumo?: string | null;
tipo?: string | null;
}PerfilPermissao
import type { PerfilPermissao } from "termo_core/portal";
export interface PerfilPermissao {
criar: boolean;
editar: boolean;
excluir: boolean;
modulo: string;
mostrar_na_sidebar: boolean;
mostrar_nas_configuracoes: boolean;
pagina: string;
ver: boolean;
}PerfilPermissaoEntrada
import type { PerfilPermissaoEntrada } from "termo_core/portal";
export interface PerfilPermissaoEntrada {
criar: boolean;
editar: boolean;
excluir: boolean;
modulo: string;
mostrar_na_sidebar?: boolean | null;
mostrar_nas_configuracoes?: boolean | null;
pagina?: string | null;
ver: boolean;
}