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ção | Rota | O que faz |
|---|---|---|
buscar_paginador_contato | GET /contato | Lista os contatos paginados |
criar_contato | POST /contato | Cadastra um contato de unidade |
buscar_auto_complete_contato | GET /contato/autocomplete | Lista básica de contatos para seleção |
buscar_pelo_filtro_contato | GET /contato/filtro | Busca contatos por filtro |
buscar_pelo_id_contato | GET /contato/{id} | Busca um contato pelo id |
atualizar_pelo_id_contato | PATCH /contato/{id} | Atualiza um contato |
deletar_pelo_id_contato | DELETE /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>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>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>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>>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>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>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>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;
}