Contato

7 funções do TermoPortal para contato.

// 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_contatoGET /contatoLista os contatos paginados
criar_contatoPOST /contatoCadastra um contato de unidade
buscar_auto_complete_contatoGET /contato/autocompleteLista básica de contatos para seleção
buscar_pelo_filtro_contatoGET /contato/filtroBusca contatos por filtro
buscar_pelo_id_contatoGET /contato/{id}Busca um contato pelo id
atualizar_pelo_id_contatoPATCH /contato/{id}Atualiza um contato
deletar_pelo_id_contatoDELETE /contato/{id}Exclui um contato

buscar_paginador_contato

GET/contato Exige credencial

Lista os contatos paginados

Exige só uma sessão válida (qualquer pessoa logada no portal). Ordem alfabética. Quem não é colaborador interno precisa informar unidade_id de uma unidade da própria sessão; colaborador interno pode omitir e vê todas. 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_contato(
  credencial_de_acesso: CredencialDeAcesso,
  parametros: ParametrosDeBuscarPaginadorContato = {},
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.PaginaContato>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { buscar_paginador_contato } from "termo_core/portal";

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

Argumentos

Nome

Tipo

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

criar_contato

POST/contato Exige credencial

Cadastra um contato de unidade

Exige só uma sessão válida (qualquer pessoa logada no portal). Contato de uma unidade cliente. unidade_id precisa ser uma unidade da sessão (colaborador interno acessa todas); nome obrigatório até 150 caracteres; cargo até 120; email válido; telefone com 10 ou 11 dígitos.

function criar_contato(
  credencial_de_acesso: CredencialDeAcesso,
  corpo_da_requisicao: tipos.ContatoCriar,
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.Contato>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { criar_contato } from "termo_core/portal";

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

Argumentos

Nome

Tipo

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

buscar_auto_complete_contato

GET/contato/autocomplete Exige credencial

Lista básica de contatos 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. Quem não é colaborador interno precisa informar unidade_id de uma unidade da própria sessão. 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_contato(
  credencial_de_acesso: CredencialDeAcesso,
  parametros: ParametrosDeBuscarAutoCompleteContato = {},
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.PaginaContatoAutoComplete>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { buscar_auto_complete_contato } from "termo_core/portal";

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

Argumentos

Nome

Tipo

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

buscar_pelo_filtro_contato

GET/contato/filtro Exige credencial

Busca contatos por filtro

Exige só uma sessão válida (qualquer pessoa logada no portal). Devolve os contatos 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. Quem não é colaborador interno precisa informar unidade_id de uma unidade da própria sessão; colaborador interno pode omitir e vê todas. nome e email procuram o trecho.

function buscar_pelo_filtro_contato(
  credencial_de_acesso: CredencialDeAcesso,
  parametros: ParametrosDeBuscarPeloFiltroContato = {},
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<Array<tipos.Contato>>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { buscar_pelo_filtro_contato } from "termo_core/portal";

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

Argumentos

Nome

Tipo

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

buscar_pelo_id_contato

GET/contato/{id} Exige credencial

Busca um contato pelo id

Exige só uma sessão válida (qualquer pessoa logada no portal). Contato excluído, ou de unidade fora da sessão, responde 404.

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

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

Argumentos

Nome

Tipo

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

atualizar_pelo_id_contato

PATCH/contato/{id} Exige credencial

Atualiza um contato

Exige só uma sessão válida (qualquer pessoa logada no portal). Mesmas validações do cadastro. Contato de unidade fora da sessão responde 404. Atualização parcial: campo ausente mantém o valor atual. Campos: nome é obrigatório quando enviado (mesmo limite do cadastro); cargo até 120 caracteres; email precisa ser válido; telefone com 10 ou 11 dígitos.

function atualizar_pelo_id_contato(
  credencial_de_acesso: CredencialDeAcesso,
  id: string,
  corpo_da_requisicao: tipos.ContatoAtualizar,
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.Contato>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { atualizar_pelo_id_contato } from "termo_core/portal";

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

Argumentos

Nome

Tipo

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

deletar_pelo_id_contato

DELETE/contato/{id} Exige credencial

Exclui um contato

Exige só uma sessão válida (qualquer pessoa logada no portal). Contato de unidade fora da sessão responde 404. A exclusão é lógica: o registro some das leituras, mas a linha não é apagada.

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

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

Contato

import type { Contato } from "termo_core/portal";

export interface Contato {
  atualizado_em: string;
  cargo?: string | null;
  criado_em: string;
  email: string;
  id: string;
  nome: string;
  telefone?: string | null;
  unidade_id: string;
}

ContatoAtualizar

import type { ContatoAtualizar } from "termo_core/portal";

export interface ContatoAtualizar {
  cargo?: string | null;
  email?: string | null;
  nome?: string | null;
  telefone?: string | null;
}

ContatoCriar

import type { ContatoCriar } from "termo_core/portal";

export interface ContatoCriar {
  cargo?: string | null;
  email: string;
  nome: string;
  telefone?: string | null;
  unidade_id: string;
}

PaginaContato

import type { PaginaContato } from "termo_core/portal";

export interface PaginaContato {
  itens: Array<PaginaContatoItensItem>;
  pagina: number;
  tamanho: number;
  total: number;
}

PaginaContatoAutoComplete

import type { PaginaContatoAutoComplete } from "termo_core/portal";

export interface PaginaContatoAutoComplete {
  itens: Array<PaginaContatoAutoCompleteItensItem>;
  pagina: number;
  tamanho: number;
  total: number;
}

PaginaContatoAutoCompleteItensItem

import type { PaginaContatoAutoCompleteItensItem } from "termo_core/portal";

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

PaginaContatoItensItem

import type { PaginaContatoItensItem } from "termo_core/portal";

export interface PaginaContatoItensItem {
  atualizado_em: string;
  cargo?: string | null;
  criado_em: string;
  email: string;
  id: string;
  nome: string;
  telefone?: string | null;
  unidade_id: string;
}

Nesta página