Perfil acesso

8 funções do TermoIntranetAPI para perfil acesso.

// npm install termo_core --save-exact
import * as intranet from "termo_core/intranet";
// ou: import { intranet } from "termo_core";
FunçãoRotaO que faz
buscar_paginador_perfil_acessoGET /perfil_acessoLista os perfis de acesso com paginação por cursor
criar_perfil_acessoPOST /perfil_acessoCria um perfil de acesso
buscar_auto_complete_perfil_acessoGET /perfil_acesso/autocompleteLista básica de perfis de acesso para seleção
buscar_pelo_filtro_perfil_acessoGET /perfil_acesso/filtroBusca perfis de acesso por filtro
buscar_total_perfil_acessoGET /perfil_acesso/totalTotal de registros do paginador
buscar_pelo_id_perfil_acessoGET /perfil_acesso/{id}Busca um perfil de acesso pelo id
atualizar_pelo_id_perfil_acessoPATCH /perfil_acesso/{id}Atualiza um perfil de acesso pelo id
deletar_pelo_id_perfil_acessoDELETE /perfil_acesso/{id}Exclui um perfil de acesso pelo id

buscar_paginador_perfil_acesso

GET/perfil_acesso Exige credencial

Lista os perfis de acesso com paginação por cursor

Exige qualquer permissão da área colaboradores (qualquer ação liberada na área já libera a leitura). Ordena pelo nome e pelo id, sempre 50 itens por página. Sem cursor vem a primeira página; para a seguinte, envie em cursor o proximo_cursor recebido (nulo na última página). O total de registros não vem aqui: está em GET /perfil_acesso/total, para a lista não esperar o count(*). Cursor de id inexistente devolve página vazia. Perfis excluídos não aparecem.

function buscar_paginador_perfil_acesso(
  credencial_de_acesso: CredencialDeAcesso,
  parametros: ParametrosDeBuscarPaginadorPerfilAcesso = {},
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.PaginaPerfilAcessoString>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { buscar_paginador_perfil_acesso } from "termo_core/intranet";

const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await buscar_paginador_perfil_acesso(credencial_de_acesso, { cursor: "..." });

Argumentos

Nome

Tipo

Retorno: Promise<tipos.PaginaPerfilAcessoString> · Rust: Result<tipos::PaginaPerfilAcessoString, ErroAoChamarServico> · veja PaginaPerfilAcessoString.

criar_perfil_acesso

POST/perfil_acesso Exige credencial

Cria um perfil de acesso

Exige a permissão criar da área colaboradores. O perfil de acesso é o conjunto de permissões que o TermoIntranetAPI dá a um colaborador: cada colaborador aponta para um perfil (PATCH /colaborador/{id}/perfil_acesso) e enxerga o que o perfil libera. nome é obrigatório (até 80 caracteres, único sem diferenciar maiúsculas); descricao é opcional (até 200); permissoes traz, para cada área (clientes, faturas, funcionarios, colaboradores), as ações ler, criar, editar e deletar (o que não vier fica false). A resposta inclui colaboradores, quantas pessoas usam o perfil. O master do TermoAuth tem tudo liberado sem precisar de perfil.

function criar_perfil_acesso(
  credencial_de_acesso: CredencialDeAcesso,
  corpo_da_requisicao: tipos.PerfilAcessoCriar,
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.PerfilAcesso>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { criar_perfil_acesso } from "termo_core/intranet";

const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await criar_perfil_acesso(credencial_de_acesso, corpo_da_requisicao);

Argumentos

Nome

Tipo

Retorno: Promise<tipos.PerfilAcesso> · Rust: Result<tipos::PerfilAcesso, ErroAoChamarServico> · veja PerfilAcesso.

buscar_auto_complete_perfil_acesso

GET/perfil_acesso/autocomplete Exige credencial

Lista básica de perfis de acesso para seleção

Exige qualquer permissão da área colaboradores (qualquer ação liberada na área já libera a leitura). Devolve só o id e o nome, em ordem alfabética. busca procura por trecho do nome, sem diferenciar maiúsculas. Paginação por cursor: tamanho tem padrão 10 e máximo 100, e para a página seguinte envie em cursor o proximo_cursor recebido.

function buscar_auto_complete_perfil_acesso(
  credencial_de_acesso: CredencialDeAcesso,
  parametros: ParametrosDeBuscarAutoCompletePerfilAcesso = {},
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.PaginaPerfilAcessoAutoCompleteString>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { buscar_auto_complete_perfil_acesso } from "termo_core/intranet";

const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await buscar_auto_complete_perfil_acesso(credencial_de_acesso, { busca: "..." });

Argumentos

Nome

Tipo

Retorno: Promise<tipos.PaginaPerfilAcessoAutoCompleteString> · Rust: Result<tipos::PaginaPerfilAcessoAutoCompleteString, ErroAoChamarServico> · veja PaginaPerfilAcessoAutoCompleteString.

buscar_pelo_filtro_perfil_acesso

GET/perfil_acesso/filtro Exige credencial

Busca perfis de acesso por filtro

Exige qualquer permissão da área colaboradores (qualquer ação liberada na área já libera a leitura). Devolve todos os perfis que casam com o filtro, sem paginação, em ordem alfabética de nome. nome procura por trecho, sem diferenciar maiúsculas. Sem filtro, devolve todos (é o que a tela usa para listar e para escolher o perfil de um colaborador).

function buscar_pelo_filtro_perfil_acesso(
  credencial_de_acesso: CredencialDeAcesso,
  parametros: ParametrosDeBuscarPeloFiltroPerfilAcesso = {},
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<Array<tipos.PerfilAcesso>>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { buscar_pelo_filtro_perfil_acesso } from "termo_core/intranet";

const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await buscar_pelo_filtro_perfil_acesso(credencial_de_acesso, { nome: "..." });

Argumentos

Nome

Tipo

Retorno: Promise<Array<tipos.PerfilAcesso>> · Rust: Result<Vec<tipos::PerfilAcesso>, ErroAoChamarServico>

buscar_total_perfil_acesso

GET/perfil_acesso/total Exige credencial

Total de registros do paginador

Exige qualquer permissão da área colaboradores (qualquer ação liberada na área já libera a leitura). Devolve só o count(*) com os mesmos filtros de GET /perfil_acesso, para o frontend montar o paginador sem atrasar a lista: a tela pede a primeira página e o total em paralelo. Perfis excluídos não contam.

function buscar_total_perfil_acesso(
  credencial_de_acesso: CredencialDeAcesso,
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.Total>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { buscar_total_perfil_acesso } from "termo_core/intranet";

const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await buscar_total_perfil_acesso(credencial_de_acesso);

Argumentos

Nome

Tipo

Retorno: Promise<tipos.Total> · Rust: Result<tipos::Total, ErroAoChamarServico> · veja Total.

buscar_pelo_id_perfil_acesso

GET/perfil_acesso/{id} Exige credencial

Busca um perfil de acesso pelo id

Exige qualquer permissão da área colaboradores (qualquer ação liberada na área já libera a leitura). Perfil excluído responde 404.

function buscar_pelo_id_perfil_acesso(
  credencial_de_acesso: CredencialDeAcesso,
  id: string,
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.PerfilAcesso>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { buscar_pelo_id_perfil_acesso } from "termo_core/intranet";

const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await buscar_pelo_id_perfil_acesso(credencial_de_acesso, id);

Argumentos

Nome

Tipo

Retorno: Promise<tipos.PerfilAcesso> · Rust: Result<tipos::PerfilAcesso, ErroAoChamarServico> · veja PerfilAcesso.

atualizar_pelo_id_perfil_acesso

PATCH/perfil_acesso/{id} Exige credencial

Atualiza um perfil de acesso pelo id

Exige a permissão editar da área colaboradores. Atualização parcial: só os campos enviados mudam. nome segue o limite do cadastro; descricao vazia apaga o valor; permissoes, quando enviado, substitui o conjunto inteiro (o que não vier fica false). Todo colaborador do perfil passa a valer com as novas permissões em até 5 minutos (cache do acesso).

function atualizar_pelo_id_perfil_acesso(
  credencial_de_acesso: CredencialDeAcesso,
  id: string,
  corpo_da_requisicao: tipos.PerfilAcessoAtualizar,
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.PerfilAcesso>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { atualizar_pelo_id_perfil_acesso } from "termo_core/intranet";

const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await atualizar_pelo_id_perfil_acesso(credencial_de_acesso, id, corpo_da_requisicao);

Argumentos

Nome

Tipo

Retorno: Promise<tipos.PerfilAcesso> · Rust: Result<tipos::PerfilAcesso, ErroAoChamarServico> · veja PerfilAcesso.

deletar_pelo_id_perfil_acesso

DELETE/perfil_acesso/{id} Exige credencial

Exclui um perfil de acesso pelo id

Exige a permissão deletar da área colaboradores. A exclusão é lógica e só é aceita quando nenhum colaborador usa o perfil: com gente vinculada responde 409, e é preciso trocar o perfil dessas pessoas antes.

function deletar_pelo_id_perfil_acesso(
  credencial_de_acesso: CredencialDeAcesso,
  id: string,
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<void>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { deletar_pelo_id_perfil_acesso } from "termo_core/intranet";

const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
await deletar_pelo_id_perfil_acesso(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.

Acoes

import type { Acoes } from "termo_core/intranet";

export interface Acoes {
  criar?: boolean;
  deletar?: boolean;
  editar?: boolean;
  ler?: boolean;
}

PaginaPerfilAcessoAutoCompleteString

import type { PaginaPerfilAcessoAutoCompleteString } from "termo_core/intranet";

export interface PaginaPerfilAcessoAutoCompleteString {
  itens: Array<PaginaPerfilAcessoAutoCompleteStringItensItem>;
  proximo_cursor?: string;
  tamanho: number;
}

PaginaPerfilAcessoAutoCompleteStringItensItem

import type { PaginaPerfilAcessoAutoCompleteStringItensItem } from "termo_core/intranet";

export interface PaginaPerfilAcessoAutoCompleteStringItensItem {
  id: string;
  nome: string;
}

PaginaPerfilAcessoString

import type { PaginaPerfilAcessoString } from "termo_core/intranet";

export interface PaginaPerfilAcessoString {
  itens: Array<PaginaPerfilAcessoStringItensItem>;
  proximo_cursor?: string;
  tamanho: number;
}

PaginaPerfilAcessoStringItensItem

import type { PaginaPerfilAcessoStringItensItem } from "termo_core/intranet";

export interface PaginaPerfilAcessoStringItensItem {
  atualizado_em: string;
  colaboradores: number;
  criado_em: string;
  descricao?: string | null;
  id: string;
  nome: string;
  permissoes: Permissoes;
}

PerfilAcesso

import type { PerfilAcesso } from "termo_core/intranet";

export interface PerfilAcesso {
  atualizado_em: string;
  colaboradores: number;
  criado_em: string;
  descricao?: string | null;
  id: string;
  nome: string;
  permissoes: Permissoes;
}

PerfilAcessoAtualizar

import type { PerfilAcessoAtualizar } from "termo_core/intranet";

export interface PerfilAcessoAtualizar {
  descricao?: string | null;
  nome?: string | null;
  permissoes?: Permissoes | null;
}

PerfilAcessoCriar

import type { PerfilAcessoCriar } from "termo_core/intranet";

export interface PerfilAcessoCriar {
  descricao?: string | null;
  nome: string;
  permissoes?: Permissoes;
}

Permissoes

import type { Permissoes } from "termo_core/intranet";

export interface Permissoes {
  clientes?: Acoes;
  colaboradores?: Acoes;
  faturas?: Acoes;
  funcionarios?: Acoes;
}

Total

import type { Total } from "termo_core/intranet";

export interface Total {
  total: number;
}

Nesta página