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çãoRotaO que faz
buscar_paginador_perfilGET /perfilLista os perfis paginados
criar_perfilPOST /perfilCadastra um perfil de acesso
buscar_auto_complete_perfilGET /perfil/autocompleteLista básica de perfis para seleção
buscar_pelo_filtro_perfilGET /perfil/filtroBusca perfis por filtro
buscar_pelo_id_perfilGET /perfil/{id}Busca um perfil pelo id
atualizar_pelo_id_perfilPATCH /perfil/{id}Atualiza um perfil de acesso
deletar_pelo_id_perfilDELETE /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>
Exemplo
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>
Exemplo
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>
Exemplo
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>>
Exemplo
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>
Exemplo
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>
Exemplo
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>
Exemplo
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;
}

Nesta página