Auth

9 funções do TermoIntranetAPI para auth.

// 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_authGET /authLista os acessos com paginação por cursor
criar_authPOST /authCadastra um acesso
buscar_acesso_authGET /auth/acessoAcesso de quem está logado
buscar_auto_complete_authGET /auth/autocompleteLista básica de acessos para seleção
buscar_pelo_filtro_authGET /auth/filtroBusca acessos por filtro
buscar_total_authGET /auth/totalTotal de registros do paginador
buscar_pelo_id_authGET /auth/{id}Busca um acesso pelo id
atualizar_pelo_id_authPATCH /auth/{id}Atualiza um acesso
deletar_pelo_id_authDELETE /auth/{id}Exclui um acesso

buscar_paginador_auth

GET/auth Exige credencial

Lista os acessos com paginação por cursor

Exige qualquer permissão da área colaboradores. Ordena por perfil, depois por e-mail e por id, sempre 50 itens por página. Sem cursor vem a primeira página de acessos; 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 /auth/total, para a lista não esperar o count(*). Cursor de id inexistente devolve página vazia. Acessos excluídos não aparecem.

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

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

Argumentos

Nome

Tipo

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

criar_auth

POST/auth Exige credencial

Cadastra um acesso

Exige a permissão criar da área colaboradores. Cadastra quem pode entrar no TermoIntranetAPI: o e-mail é obrigatório, gravado em minúsculas e sem espaços nas pontas, com até 160 caracteres. O único perfil aceito é colaborador. O acesso nasce ativo e sem nenhuma permissão: as áreas vêm do perfil de acesso do colaborador (PATCH /colaborador/{id}/perfil_acesso). Para a pessoa conseguir entrar, o e-mail precisa ser @termotubos.com.br e existir no TermoAuth.

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

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

Argumentos

Nome

Tipo

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

buscar_acesso_auth

GET/auth/acesso Exige credencial

Acesso de quem está logado

Livre para qualquer usuário autenticado com cadastro ativo, mesmo sem nenhuma permissão liberada. Devolve o cadastro de quem chamou (o nome vem do token e, vazio, vira o e-mail), o nome do perfil de acesso do colaborador em perfil_acesso (nulo sem perfil) e as permissões por área que o perfil libera (clientes, faturas, funcionarios e colaboradores), cada uma com ler, criar, editar e deletar. Um master do TermoAuth recebe todas as permissões, com ou sem perfil, e, no primeiro acesso, ganha o cadastro automaticamente.

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

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

Argumentos

Nome

Tipo

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

buscar_auto_complete_auth

GET/auth/autocomplete Exige credencial

Lista básica de acessos para seleção

Exige qualquer permissão da área colaboradores. Devolve só id, e-mail e perfil, em ordem alfabética de e-mail, para escolher um acesso. busca procura por trecho do e-mail, sem diferenciar maiúsculas; perfil compara o valor exato. 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_auth(
  credencial_de_acesso: CredencialDeAcesso,
  parametros: ParametrosDeBuscarAutoCompleteAuth = {},
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.PaginaAuthAutoCompleteString>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { buscar_auto_complete_auth } from "termo_core/intranet";

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

Argumentos

Nome

Tipo

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

buscar_pelo_filtro_auth

GET/auth/filtro Exige credencial

Busca acessos por filtro

Exige qualquer permissão da área colaboradores. Devolve todos os acessos que casam com o filtro, sem paginação, em ordem alfabética de e-mail. email procura por trecho, sem diferenciar maiúsculas; perfil compara o valor exato; ativo filtra pela situação. Sem filtro, devolve todos. Acessos excluídos não aparecem.

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

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

Argumentos

Nome

Tipo

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

buscar_total_auth

GET/auth/total Exige credencial

Total de registros do paginador

Exige qualquer permissão da área colaboradores. Devolve só o count(*) com os mesmos filtros de GET /auth, para o frontend montar o paginador sem atrasar a lista: a tela pede a primeira página e o total em paralelo. Conta os mesmos acessos que a listagem devolve; excluídos não contam.

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

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

Argumentos

Nome

Tipo

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

buscar_pelo_id_auth

GET/auth/{id} Exige credencial

Busca um acesso pelo id

Exige qualquer permissão da área colaboradores. Acesso excluído responde 404. vinculado diz se há um colaborador ligado ao acesso, e nome é o nome desse colaborador.

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

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

Argumentos

Nome

Tipo

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

atualizar_pelo_id_auth

PATCH/auth/{id} Exige credencial

Atualiza um acesso

Exige a permissão editar da área colaboradores. Só os campos enviados mudam: email (gravado em minúsculas, até 160 caracteres) e ativo (acesso inativo é barrado em todas as rotas). O acesso de um master do TermoAuth não pode ser alterado.

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

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

Argumentos

Nome

Tipo

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

deletar_pelo_id_auth

DELETE/auth/{id} Exige credencial

Exclui um acesso

Exige a permissão deletar da área colaboradores. A exclusão é lógica: o acesso some das consultas e a pessoa deixa de entrar, mas o registro fica guardado e não há como restaurar. Acesso com colaborador vinculado não pode ser excluído. O acesso de um master do TermoAuth não pode ser excluído.

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

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

AcessoAtual

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

export interface AcessoAtual {
  email: string;
  id: string;
  master: boolean;
  nome: string;
  perfil: string;
  perfil_acesso?: string | null;
  permissoes: Permissoes;
}

Acoes

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

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

Auth

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

export interface Auth {
  ativo: boolean;
  atualizado_em: string;
  bloqueado_ate?: string | null;
  criado_em: string;
  email: string;
  id: string;
  master: boolean;
  nome?: string | null;
  perfil: string;
  termoauth_id?: string | null;
  ultimo_login_em?: string | null;
  vinculado: boolean;
}

AuthAtualizar

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

export interface AuthAtualizar {
  ativo?: boolean | null;
  email?: string | null;
}

AuthCriar

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

export interface AuthCriar {
  email: string;
  perfil: string;
}

PaginaAuthAutoCompleteString

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

export interface PaginaAuthAutoCompleteString {
  itens: Array<PaginaAuthAutoCompleteStringItensItem>;
  proximo_cursor?: string;
  tamanho: number;
}

PaginaAuthAutoCompleteStringItensItem

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

export interface PaginaAuthAutoCompleteStringItensItem {
  email: string;
  id: string;
  perfil: string;
}

PaginaAuthString

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

export interface PaginaAuthString {
  itens: Array<PaginaAuthStringItensItem>;
  proximo_cursor?: string;
  tamanho: number;
}

PaginaAuthStringItensItem

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

export interface PaginaAuthStringItensItem {
  ativo: boolean;
  atualizado_em: string;
  bloqueado_ate?: string | null;
  criado_em: string;
  email: string;
  id: string;
  master: boolean;
  nome?: string | null;
  perfil: string;
  termoauth_id?: string | null;
  ultimo_login_em?: string | null;
  vinculado: boolean;
}

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