Colaborador

5 funções do TermoLeads para colaborador.

// npm install termo_core --save-exact
import * as leads from "termo_core/leads";
// ou: import { leads } from "termo_core";
FunçãoRotaO que faz
buscar_paginador_colaboradorGET /api/colaboradorLista os colaboradores com paginação
buscar_auto_complete_colaboradorGET /api/colaborador/autocompleteLista básica de colaboradores para seleção
buscar_pelo_filtro_colaboradorGET /api/colaborador/filtroBusca colaboradores por filtro
buscar_pelo_id_colaboradorGET /api/colaborador/{id}Busca um colaborador pelo id
vincular_perfil_acesso_colaboradorPATCH /api/colaborador/{id}/perfil_acessoDefine o perfil de acesso de um colaborador

buscar_paginador_colaborador

GET/api/colaborador Exige credencial

Lista os colaboradores com paginação

Exige qualquer permissão da área colaboradores (qualquer ação liberada na área já libera a leitura). Ordena por nome. Quando quem chama é master do TermoAuth, antes de listar o TermoLeads busca no TermoAuth os colaboradores @termotubos.com.br que ainda não existem aqui e os cadastra com o perfil de acesso "Acesso inicial" (só leitura em todas as áreas). pagina começa em 1 (padrão 1; valores menores viram 1). A página tem sempre 50 itens: tamanho é aceito, mas ignorado. total conta os registros que casam com o filtro.

function buscar_paginador_colaborador(
  credencial_de_acesso: CredencialDeAcesso,
  parametros: ParametrosDeBuscarPaginadorColaborador = {},
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.PaginaDeColaboradores>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { buscar_paginador_colaborador } from "termo_core/leads";

const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await buscar_paginador_colaborador(credencial_de_acesso, { pagina: 1 });

Argumentos

Nome

Tipo

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

buscar_auto_complete_colaborador

GET/api/colaborador/autocomplete Exige credencial

Lista básica de colaboradores para seleção

Exige qualquer permissão da área colaboradores (qualquer ação liberada na área já libera a leitura). Devolve só id, nome e e-mail, em ordem alfabética de nome. pagina começa em 1 (padrão 1) e tamanho tem padrão 10, sem máximo; valores menores que 1 viram 1.

function buscar_auto_complete_colaborador(
  credencial_de_acesso: CredencialDeAcesso,
  parametros: ParametrosDeBuscarAutoCompleteColaborador = {},
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.PaginaDeColaboradoresAutoComplete>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { buscar_auto_complete_colaborador } from "termo_core/leads";

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

Argumentos

Nome

Tipo

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

buscar_pelo_filtro_colaborador

GET/api/colaborador/filtro Exige credencial

Busca colaboradores por filtro

Exige qualquer permissão da área colaboradores (qualquer ação liberada na área já libera a leitura). Devolve todos os colaboradores que casam com o filtro, sem paginação, em ordem alfabética de nome. Todos os filtros são opcionais e se somam; sem filtro, devolve todos.

function buscar_pelo_filtro_colaborador(
  credencial_de_acesso: CredencialDeAcesso,
  parametros: ParametrosDeBuscarPeloFiltroColaborador = {},
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<Array<tipos.Colaborador>>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { buscar_pelo_filtro_colaborador } from "termo_core/leads";

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

Argumentos

Nome

Tipo

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

buscar_pelo_id_colaborador

GET/api/colaborador/{id} Exige credencial

Busca um colaborador pelo id

Exige qualquer permissão da área colaboradores (qualquer ação liberada na área já libera a leitura). Devolve o colaborador com o e-mail e o master do acesso dele e o perfil de acesso. Colaborador excluído responde 404. O colaborador é do TermoAuth: aqui ele só é lido (chega pela sincronização) e só o perfil de acesso é alterado.

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

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

Argumentos

Nome

Tipo

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

vincular_perfil_acesso_colaborador

PATCH/api/colaborador/{id}/perfil_acesso Exige credencial

Define o perfil de acesso de um colaborador

Exige a permissão editar da área colaboradores. É a única escrita do colaborador feita pelo TermoLeads: perfil_acesso_id aponta para um perfil de GET /api/perfil_acesso/filtro e passa a definir o que a pessoa enxerga; null tira o perfil e deixa a pessoa sem nenhuma área. O colaborador de um master do TermoAuth não aceita perfil (ele já tem tudo). Vale em até 5 minutos (cache do acesso).

function vincular_perfil_acesso_colaborador(
  credencial_de_acesso: CredencialDeAcesso,
  id: string,
  corpo_da_requisicao: tipos.ColaboradorVincularPerfilAcesso,
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.Colaborador>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { vincular_perfil_acesso_colaborador } from "termo_core/leads";

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

Argumentos

Nome

Tipo

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

Tipos

Tipos usados pelas funções desta página. O nome é o mesmo nos dois pacotes.

Colaborador

import type { Colaborador } from "termo_core/leads";

export interface Colaborador {
  /**
   * `false` quando o colaborador está inativo
   */
  ativo: boolean;
  /**
   * Data e hora da última alteração (ISO 8601, UTC)
   */
  atualizado_em: string;
  /**
   * Id do acesso (`auth`) do colaborador
   */
  auth_id: string;
  /**
   * Cargo do colaborador
   */
  cargo?: string | null;
  /**
   * Data e hora do cadastro (ISO 8601, UTC)
   */
  criado_em: string;
  /**
   * E-mail do acesso, sempre `@termotubos.com.br`
   */
  email: string;
  /**
   * Função do colaborador
   */
  funcao?: string | null;
  /**
   * Id do colaborador no TermoLeads
   */
  id: string;
  /**
   * `true` quando a pessoa é master do TermoAuth (tem tudo liberado e não aceita perfil de acesso)
   */
  master: boolean;
  /**
   * Nome do colaborador, vindo do TermoAuth
   */
  nome: string;
  /**
   * Nome do perfil de acesso da pessoa; `null` quando não tem perfil
   */
  perfil_acesso?: string | null;
  /**
   * Id do perfil de acesso da pessoa; `null` quando ainda não tem perfil (não enxerga nenhuma área)
   */
  perfil_acesso_id?: string | null;
  /**
   * Setor do colaborador
   */
  setor?: string | null;
  /**
   * Telefone do colaborador
   */
  telefone?: string | null;
}

ColaboradorAutoComplete

import type { ColaboradorAutoComplete } from "termo_core/leads";

export interface ColaboradorAutoComplete {
  /**
   * E-mail do colaborador
   */
  email: string;
  /**
   * Id do colaborador
   */
  id: string;
  /**
   * Nome do colaborador
   */
  nome: string;
}

ColaboradorVincularPerfilAcesso

import type { ColaboradorVincularPerfilAcesso } from "termo_core/leads";

export interface ColaboradorVincularPerfilAcesso {
  /**
   * Id do perfil de acesso que a pessoa passa a usar; `null` tira o perfil
   */
  perfil_acesso_id?: string | null;
}

PaginaDeColaboradores

import type { PaginaDeColaboradores } from "termo_core/leads";

export interface PaginaDeColaboradores {
  /**
   * Colaboradores da página, em ordem alfabética de nome
   */
  itens: Array<Colaborador>;
  /**
   * Página devolvida, a partir de 1
   */
  pagina: number;
  /**
   * Itens por página (sempre 50)
   */
  tamanho: number;
  /**
   * Quantidade de colaboradores que casam com o filtro
   */
  total: number;
}

PaginaDeColaboradoresAutoComplete

import type { PaginaDeColaboradoresAutoComplete } from "termo_core/leads";

export interface PaginaDeColaboradoresAutoComplete {
  /**
   * Colaboradores da página, em ordem alfabética de nome
   */
  itens: Array<ColaboradorAutoComplete>;
  /**
   * Página devolvida, a partir de 1
   */
  pagina: number;
  /**
   * Itens por página usados
   */
  tamanho: number;
  /**
   * Quantidade de colaboradores que casam com a busca
   */
  total: number;
}

Nesta página