termo_core 0.1.3 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,902 +1,6 @@
1
1
  // Gerado pelo gerador do TermoCore (`cargo run -p gerador`). Não edite à mão: a próxima geração sobrescreve.
2
2
  import { chamar_servico, codificar_parametro_de_caminho } from "../base/requisicao.js";
3
3
  import { TERMO_FLOW as SERVICO_DESTA_API } from "../base/servicos.js";
4
- /**
5
- * Versão do backend no ar
6
- *
7
- * Pública, sem token. Devolve `sucesso: true` e a versão do backend publicada, no formato semver.
8
- *
9
- * `GET /`
10
- */
11
- export function buscar_versao_test(opcoes_da_chamada) {
12
- return chamar_servico({
13
- servico: SERVICO_DESTA_API,
14
- metodo_http: "GET",
15
- caminho_da_rota: "/",
16
- formato_da_resposta: "json",
17
- }, opcoes_da_chamada);
18
- }
19
- /**
20
- * Lista os acessos com paginação
21
- *
22
- * Exige qualquer permissão da área `colaboradores` (qualquer ação liberada na área já libera a leitura). Ordena por perfil e depois por e-mail. Acessos excluídos não aparecem. `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 todos os registros não excluídos.
23
- *
24
- * `GET /auth`
25
- */
26
- export function buscar_paginador_auth(credencial_de_acesso, parametros = {}, opcoes_da_chamada) {
27
- return chamar_servico({
28
- servico: SERVICO_DESTA_API,
29
- metodo_http: "GET",
30
- caminho_da_rota: "/auth",
31
- credencial_de_acesso,
32
- parametros_de_consulta: parametros,
33
- formato_da_resposta: "json",
34
- }, opcoes_da_chamada);
35
- }
36
- /**
37
- * Cria um acesso
38
- *
39
- * Exige a permissão `criar` da área `colaboradores`. Cadastra quem pode entrar no TermoSell. `email` é obrigatório, com até 160 caracteres, e é gravado em minúsculas, sem espaços nas pontas; `perfil` é `colaborador` ou `cliente`. O acesso nasce ativo e sem nenhuma permissão. Para a pessoa conseguir entrar, o e-mail precisa ser `@termotubos.com.br` e existir no TermoAuth com o mesmo endereço. Para cadastrar um cliente, prefira `POST /cliente`, que cria o acesso junto.
40
- *
41
- * `POST /auth`
42
- */
43
- export function criar_auth(credencial_de_acesso, corpo_da_requisicao, opcoes_da_chamada) {
44
- return chamar_servico({
45
- servico: SERVICO_DESTA_API,
46
- metodo_http: "POST",
47
- caminho_da_rota: "/auth",
48
- credencial_de_acesso,
49
- corpo_json: corpo_da_requisicao,
50
- formato_da_resposta: "json",
51
- }, opcoes_da_chamada);
52
- }
53
- /**
54
- * Busca o acesso de quem está logado
55
- *
56
- * Livre para qualquer usuário autenticado com acesso ativo, mesmo sem nenhuma permissão liberada. Devolve o acesso de quem chamou (id, e-mail, nome, perfil e se é master do TermoAuth) e as permissões por área (`clientes`, `colaboradores` e `configuracoes`), cada uma com `ler`, `criar`, `editar` e `deletar`. Um master do TermoAuth recebe todas as permissões e, no primeiro pedido, ganha o acesso e o colaborador automaticamente. `nome` vem do TermoAuth e, se estiver vazio, repete o e-mail. É a chamada que o painel faz antes de mostrar qualquer tela.
57
- *
58
- * `GET /auth/acesso`
59
- */
60
- export function buscar_acesso_auth(credencial_de_acesso, opcoes_da_chamada) {
61
- return chamar_servico({
62
- servico: SERVICO_DESTA_API,
63
- metodo_http: "GET",
64
- caminho_da_rota: "/auth/acesso",
65
- credencial_de_acesso,
66
- formato_da_resposta: "json",
67
- }, opcoes_da_chamada);
68
- }
69
- /**
70
- * Lista básica de acessos para seleção
71
- *
72
- * Exige qualquer permissão da área `colaboradores` (qualquer ação liberada na área já libera a leitura). 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` começa em 1 (padrão 1) e `tamanho` tem padrão 10, sem máximo; valores menores que 1 viram 1. `total` conta os registros que casam com a busca.
73
- *
74
- * `GET /auth/autocomplete`
75
- */
76
- export function buscar_auto_complete_auth(credencial_de_acesso, parametros = {}, opcoes_da_chamada) {
77
- return chamar_servico({
78
- servico: SERVICO_DESTA_API,
79
- metodo_http: "GET",
80
- caminho_da_rota: "/auth/autocomplete",
81
- credencial_de_acesso,
82
- parametros_de_consulta: parametros,
83
- formato_da_resposta: "json",
84
- }, opcoes_da_chamada);
85
- }
86
- /**
87
- * Busca acessos por filtro
88
- *
89
- * Exige qualquer permissão da área `colaboradores` (qualquer ação liberada na área já libera a leitura). 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 (`colaborador` ou `cliente`); `ativo` filtra pela situação. Sem filtro, devolve todos. Acessos excluídos não aparecem.
90
- *
91
- * `GET /auth/filtro`
92
- */
93
- export function buscar_pelo_filtro_auth(credencial_de_acesso, parametros = {}, opcoes_da_chamada) {
94
- return chamar_servico({
95
- servico: SERVICO_DESTA_API,
96
- metodo_http: "GET",
97
- caminho_da_rota: "/auth/filtro",
98
- credencial_de_acesso,
99
- parametros_de_consulta: parametros,
100
- formato_da_resposta: "json",
101
- }, opcoes_da_chamada);
102
- }
103
- /**
104
- * Busca um acesso pelo id
105
- *
106
- * Exige qualquer permissão da área `colaboradores` (qualquer ação liberada na área já libera a leitura). Acesso excluído responde `404`. `vinculado` diz se há um colaborador ou um cliente ligado ao acesso, e `nome` é o nome desse colaborador ou a razão social desse cliente. `master` diz se a pessoa é master do TermoAuth.
107
- *
108
- * `GET /auth/{id}`
109
- */
110
- export function buscar_pelo_id_auth(credencial_de_acesso, id, opcoes_da_chamada) {
111
- return chamar_servico({
112
- servico: SERVICO_DESTA_API,
113
- metodo_http: "GET",
114
- caminho_da_rota: `/auth/${codificar_parametro_de_caminho(id)}`,
115
- credencial_de_acesso,
116
- formato_da_resposta: "json",
117
- }, opcoes_da_chamada);
118
- }
119
- /**
120
- * Atualiza um acesso pelo id
121
- *
122
- * Exige a permissão `editar` da área `colaboradores`. Atualização parcial: só os campos enviados mudam. `email` (até 160 caracteres, gravado em minúsculas) e `ativo` (acesso inativo é barrado em todas as rotas). O perfil não muda. O acesso de um master do TermoAuth não pode ser alterado.
123
- *
124
- * `PATCH /auth/{id}`
125
- */
126
- export function atualizar_pelo_id_auth(credencial_de_acesso, id, corpo_da_requisicao, opcoes_da_chamada) {
127
- return chamar_servico({
128
- servico: SERVICO_DESTA_API,
129
- metodo_http: "PATCH",
130
- caminho_da_rota: `/auth/${codificar_parametro_de_caminho(id)}`,
131
- credencial_de_acesso,
132
- corpo_json: corpo_da_requisicao,
133
- formato_da_resposta: "json",
134
- }, opcoes_da_chamada);
135
- }
136
- /**
137
- * Exclui um acesso pelo id
138
- *
139
- * 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 ou cliente vinculado não pode ser excluído por aqui (exclua o cliente, que leva o acesso junto). O acesso de um master do TermoAuth não pode ser excluído.
140
- *
141
- * `DELETE /auth/{id}`
142
- */
143
- export function deletar_pelo_id_auth(credencial_de_acesso, id, opcoes_da_chamada) {
144
- return chamar_servico({
145
- servico: SERVICO_DESTA_API,
146
- metodo_http: "DELETE",
147
- caminho_da_rota: `/auth/${codificar_parametro_de_caminho(id)}`,
148
- credencial_de_acesso,
149
- formato_da_resposta: "sem_conteudo",
150
- }, opcoes_da_chamada);
151
- }
152
- /**
153
- * Lista os clientes com paginação
154
- *
155
- * Exige qualquer permissão da área `clientes` (qualquer ação liberada na área já libera a leitura). Ordena pela razão social. `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 todos os registros não excluídos.
156
- *
157
- * `GET /cliente`
158
- */
159
- export function buscar_paginador_cliente(credencial_de_acesso, parametros = {}, opcoes_da_chamada) {
160
- return chamar_servico({
161
- servico: SERVICO_DESTA_API,
162
- metodo_http: "GET",
163
- caminho_da_rota: "/cliente",
164
- credencial_de_acesso,
165
- parametros_de_consulta: parametros,
166
- formato_da_resposta: "json",
167
- }, opcoes_da_chamada);
168
- }
169
- /**
170
- * Cadastra um cliente
171
- *
172
- * Exige a permissão `criar` da área `clientes`. Cria o cliente e, na mesma transação, o acesso dele com perfil `cliente` e o `email` informado. Obrigatórios: `razao_social` (até 150 caracteres), `cnpj` (exatamente 14 dígitos, só números; pode se repetir, porque a intranet repete CNPJ) e `email` (até 160 caracteres, gravado em minúsculas). Opcionais: `nome_fantasia` (até 150), `telefone` (até 20; é por ele que o robô reconhece o cliente no WhatsApp), `cidade` (até 120) e `estado` (2 letras, gravado em maiúsculas). Texto vazio nos opcionais vira `null`. O cliente nasce ativo e com `atendente_ativo` desligado.
173
- *
174
- * `POST /cliente`
175
- */
176
- export function criar_cliente(credencial_de_acesso, corpo_da_requisicao, opcoes_da_chamada) {
177
- return chamar_servico({
178
- servico: SERVICO_DESTA_API,
179
- metodo_http: "POST",
180
- caminho_da_rota: "/cliente",
181
- credencial_de_acesso,
182
- corpo_json: corpo_da_requisicao,
183
- formato_da_resposta: "json",
184
- }, opcoes_da_chamada);
185
- }
186
- /**
187
- * Lista básica de clientes para seleção
188
- *
189
- * Exige qualquer permissão da área `clientes` (qualquer ação liberada na área já libera a leitura). Devolve só id, razão social e CNPJ, em ordem alfabética da razão social. `busca` procura o trecho na razão social (sem diferenciar maiúsculas) ou no CNPJ. `pagina` começa em 1 (padrão 1) e `tamanho` tem padrão 10, sem máximo; valores menores que 1 viram 1. `total` conta os registros que casam com a busca.
190
- *
191
- * `GET /cliente/autocomplete`
192
- */
193
- export function buscar_auto_complete_cliente(credencial_de_acesso, parametros = {}, opcoes_da_chamada) {
194
- return chamar_servico({
195
- servico: SERVICO_DESTA_API,
196
- metodo_http: "GET",
197
- caminho_da_rota: "/cliente/autocomplete",
198
- credencial_de_acesso,
199
- parametros_de_consulta: parametros,
200
- formato_da_resposta: "json",
201
- }, opcoes_da_chamada);
202
- }
203
- /**
204
- * Busca clientes por filtro
205
- *
206
- * Exige qualquer permissão da área `clientes` (qualquer ação liberada na área já libera a leitura). Devolve todos os clientes que casam com o filtro, sem paginação, em ordem alfabética da razão social. `razao_social` procura o trecho na razão social ou no nome fantasia; `email` e `cidade` procuram por trecho; todos sem diferenciar maiúsculas. `cnpj` procura o trecho no CNPJ (só dígitos); `telefone` compara só os dígitos, por trecho; `estado` compara a sigla exata; `ativo` e `atendente_ativo` filtram pela situação. Sem filtro, devolve todos.
207
- *
208
- * `GET /cliente/filtro`
209
- */
210
- export function buscar_pelo_filtro_cliente(credencial_de_acesso, parametros = {}, opcoes_da_chamada) {
211
- return chamar_servico({
212
- servico: SERVICO_DESTA_API,
213
- metodo_http: "GET",
214
- caminho_da_rota: "/cliente/filtro",
215
- credencial_de_acesso,
216
- parametros_de_consulta: parametros,
217
- formato_da_resposta: "json",
218
- }, opcoes_da_chamada);
219
- }
220
- /**
221
- * Status da sincronização dos clientes com o TermoIntranetAPI
222
- *
223
- * Só para o master do TermoAuth. Devolve a sincronização em andamento ou a última que terminou: `rodando`, `paginas` gravadas, `cancelada`, `erro` (sem permissão no TermoIntranetAPI, indisponibilidade ou falha no banco) e os totais em `resultado`. O status fica em memória e se perde se o servidor reiniciar; o que já foi gravado fica.
224
- *
225
- * `GET /cliente/sincronizar`
226
- */
227
- export function buscar_sincronizacao_cliente(credencial_de_acesso, opcoes_da_chamada) {
228
- return chamar_servico({
229
- servico: SERVICO_DESTA_API,
230
- metodo_http: "GET",
231
- caminho_da_rota: "/cliente/sincronizar",
232
- credencial_de_acesso,
233
- formato_da_resposta: "json",
234
- }, opcoes_da_chamada);
235
- }
236
- /**
237
- * Inicia a sincronização dos clientes com o TermoIntranetAPI em segundo plano
238
- *
239
- * Só para o master do TermoAuth. Percorre toda a lista de clientes do TermoIntranetAPI (`GET /cliente`, paginada por cursor) usando o próprio token de quem chamou e grava aqui: entra todo cliente, pessoa física ou jurídica, com ou sem documento (`cnpj` guarda só os dígitos do CPF ou CNPJ, ou fica vazio); `ignorados` conta só o id repetido na mesma página. Cliente que já existe com o mesmo CNPJ e ainda sem vínculo recebe o `intranet_cliente_id`; cliente já vinculado tem razão social, nome fantasia, telefone (celular, ou telefone fixo na falta dele, só dígitos), e-mail, cidade e estado sobrescritos pela intranet; cliente novo é criado com `atendente_ativo` desligado. Os campos do TermoSell (`ativo` e `atendente_ativo`) nunca são tocados. Roda em segundo plano no servidor e grava cada página no banco assim que chega: a tela pode ser fechada. Responde 202 com o status inicial; acompanhe por `GET /cliente/sincronizar`. Sem corpo.
240
- *
241
- * `POST /cliente/sincronizar`
242
- */
243
- export function sincronizar_com_intranet_cliente(credencial_de_acesso, opcoes_da_chamada) {
244
- return chamar_servico({
245
- servico: SERVICO_DESTA_API,
246
- metodo_http: "POST",
247
- caminho_da_rota: "/cliente/sincronizar",
248
- credencial_de_acesso,
249
- formato_da_resposta: "json",
250
- }, opcoes_da_chamada);
251
- }
252
- /**
253
- * Cancela a sincronização dos clientes em andamento
254
- *
255
- * Só para o master do TermoAuth. Para antes da próxima página; o que já foi gravado fica.
256
- *
257
- * `DELETE /cliente/sincronizar`
258
- */
259
- export function cancelar_sincronizacao_cliente(credencial_de_acesso, opcoes_da_chamada) {
260
- return chamar_servico({
261
- servico: SERVICO_DESTA_API,
262
- metodo_http: "DELETE",
263
- caminho_da_rota: "/cliente/sincronizar",
264
- credencial_de_acesso,
265
- formato_da_resposta: "sem_conteudo",
266
- }, opcoes_da_chamada);
267
- }
268
- /**
269
- * Busca um cliente pelo id
270
- *
271
- * Exige qualquer permissão da área `clientes` (qualquer ação liberada na área já libera a leitura). Devolve o cliente com o e-mail do acesso e o `ultimo_pedido` dele na intranet (`null` quando não foi possível consultar). Cliente excluído responde `404`.
272
- *
273
- * `GET /cliente/{id}`
274
- */
275
- export function buscar_pelo_id_cliente(credencial_de_acesso, id, opcoes_da_chamada) {
276
- return chamar_servico({
277
- servico: SERVICO_DESTA_API,
278
- metodo_http: "GET",
279
- caminho_da_rota: `/cliente/${codificar_parametro_de_caminho(id)}`,
280
- credencial_de_acesso,
281
- formato_da_resposta: "json",
282
- }, opcoes_da_chamada);
283
- }
284
- /**
285
- * Atualiza um cliente pelo id
286
- *
287
- * Exige a permissão `editar` da área `clientes`. Atualização parcial: só os campos enviados mudam. `razao_social` não pode ficar vazia (até 150 caracteres); `nome_fantasia` (até 150), `telefone` (até 20), `cidade` (até 120) e `estado` (2 letras) aceitam texto vazio para apagar o valor. `ativo` liga ou desliga o cliente e `atendente_ativo` liga ou desliga o atendimento pelo robô no WhatsApp: o robô só responde cliente ativo com `atendente_ativo` ligado; os demais vão direto para a equipe. CNPJ e e-mail não mudam por aqui.
288
- *
289
- * `PATCH /cliente/{id}`
290
- */
291
- export function atualizar_pelo_id_cliente(credencial_de_acesso, id, corpo_da_requisicao, opcoes_da_chamada) {
292
- return chamar_servico({
293
- servico: SERVICO_DESTA_API,
294
- metodo_http: "PATCH",
295
- caminho_da_rota: `/cliente/${codificar_parametro_de_caminho(id)}`,
296
- credencial_de_acesso,
297
- corpo_json: corpo_da_requisicao,
298
- formato_da_resposta: "json",
299
- }, opcoes_da_chamada);
300
- }
301
- /**
302
- * Exclui um cliente pelo id
303
- *
304
- * Exige a permissão `deletar` da área `clientes`. A exclusão é lógica e leva junto o acesso do cliente, na mesma transação: os dois somem das consultas, o CNPJ e o e-mail ficam livres para um novo cadastro e não há como restaurar.
305
- *
306
- * `DELETE /cliente/{id}`
307
- */
308
- export function deletar_pelo_id_cliente(credencial_de_acesso, id, opcoes_da_chamada) {
309
- return chamar_servico({
310
- servico: SERVICO_DESTA_API,
311
- metodo_http: "DELETE",
312
- caminho_da_rota: `/cliente/${codificar_parametro_de_caminho(id)}`,
313
- credencial_de_acesso,
314
- formato_da_resposta: "sem_conteudo",
315
- }, opcoes_da_chamada);
316
- }
317
- /**
318
- * Lista os colaboradores com paginação
319
- *
320
- * 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 TermoSell busca no TermoAuth os colaboradores `@termotubos.com.br` que ainda não existem aqui e os cadastra sem nenhuma permissão. `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 todos os registros não excluídos.
321
- *
322
- * `GET /colaborador`
323
- */
324
- export function buscar_paginador_colaborador(credencial_de_acesso, parametros = {}, opcoes_da_chamada) {
325
- return chamar_servico({
326
- servico: SERVICO_DESTA_API,
327
- metodo_http: "GET",
328
- caminho_da_rota: "/colaborador",
329
- credencial_de_acesso,
330
- parametros_de_consulta: parametros,
331
- formato_da_resposta: "json",
332
- }, opcoes_da_chamada);
333
- }
334
- /**
335
- * Lista básica de colaboradores para seleção
336
- *
337
- * 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. `busca` procura por trecho do nome ou do e-mail, sem diferenciar maiúsculas. `pagina` começa em 1 (padrão 1) e `tamanho` tem padrão 10, sem máximo; valores menores que 1 viram 1. `total` conta os registros que casam com a busca.
338
- *
339
- * `GET /colaborador/autocomplete`
340
- */
341
- export function buscar_auto_complete_colaborador(credencial_de_acesso, parametros = {}, opcoes_da_chamada) {
342
- return chamar_servico({
343
- servico: SERVICO_DESTA_API,
344
- metodo_http: "GET",
345
- caminho_da_rota: "/colaborador/autocomplete",
346
- credencial_de_acesso,
347
- parametros_de_consulta: parametros,
348
- formato_da_resposta: "json",
349
- }, opcoes_da_chamada);
350
- }
351
- /**
352
- * Busca colaboradores por filtro
353
- *
354
- * 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. `busca` procura por trecho do nome ou do e-mail (a busca rápida da tela); `nome`, `email` e `cargo` procuram por trecho, sem diferenciar maiúsculas; `ativo` filtra pela situação; `perfil_acesso_id` filtra pelo perfil de acesso. Sem filtro, devolve todos. O colaborador é do TermoAuth: aqui ele só é lido (chega pela sincronização e pelos eventos do TermoWebhook) e `setor`, `cargo` e `funcao` vêm de lá.
355
- *
356
- * `GET /colaborador/filtro`
357
- */
358
- export function buscar_pelo_filtro_colaborador(credencial_de_acesso, parametros = {}, opcoes_da_chamada) {
359
- return chamar_servico({
360
- servico: SERVICO_DESTA_API,
361
- metodo_http: "GET",
362
- caminho_da_rota: "/colaborador/filtro",
363
- credencial_de_acesso,
364
- parametros_de_consulta: parametros,
365
- formato_da_resposta: "json",
366
- }, opcoes_da_chamada);
367
- }
368
- /**
369
- * Busca um colaborador pelo id
370
- *
371
- * 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. Colaborador excluído responde `404`. O colaborador é do TermoAuth: aqui ele só é lido (chega pela sincronização e pelos eventos do TermoWebhook) e `setor`, `cargo` e `funcao` vêm de lá.
372
- *
373
- * `GET /colaborador/{id}`
374
- */
375
- export function buscar_pelo_id_colaborador(credencial_de_acesso, id, opcoes_da_chamada) {
376
- return chamar_servico({
377
- servico: SERVICO_DESTA_API,
378
- metodo_http: "GET",
379
- caminho_da_rota: `/colaborador/${codificar_parametro_de_caminho(id)}`,
380
- credencial_de_acesso,
381
- formato_da_resposta: "json",
382
- }, opcoes_da_chamada);
383
- }
384
- /**
385
- * Define o perfil de acesso de um colaborador
386
- *
387
- * Exige a permissão `editar` da área `colaboradores`. É a única escrita do colaborador feita pelo TermoSell: `perfil_acesso_id` aponta para um perfil de `GET /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).
388
- *
389
- * `PATCH /colaborador/{id}/perfil_acesso`
390
- */
391
- export function vincular_perfil_acesso_colaborador(credencial_de_acesso, id, corpo_da_requisicao, opcoes_da_chamada) {
392
- return chamar_servico({
393
- servico: SERVICO_DESTA_API,
394
- metodo_http: "PATCH",
395
- caminho_da_rota: `/colaborador/${codificar_parametro_de_caminho(id)}/perfil_acesso`,
396
- credencial_de_acesso,
397
- corpo_json: corpo_da_requisicao,
398
- formato_da_resposta: "json",
399
- }, opcoes_da_chamada);
400
- }
401
- /**
402
- * Lista as configurações do Chatwoot com paginação
403
- *
404
- * Exige qualquer permissão da área `configuracoes` (qualquer ação liberada na área já libera a leitura). Ordena por nome. Para cada item, consulta o Chatwoot na hora: `chave_valida` diz se o token de acesso funcionou e `erro_chave` traz o motivo da recusa. `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 todos os registros não excluídos. O token de acesso nunca volta: as respostas trazem só `token_acesso_mascarado`.
405
- *
406
- * `GET /config_system_chatwoot`
407
- */
408
- export function buscar_paginador_config_system_chatwoot(credencial_de_acesso, parametros = {}, opcoes_da_chamada) {
409
- return chamar_servico({
410
- servico: SERVICO_DESTA_API,
411
- metodo_http: "GET",
412
- caminho_da_rota: "/config_system_chatwoot",
413
- credencial_de_acesso,
414
- parametros_de_consulta: parametros,
415
- formato_da_resposta: "json",
416
- }, opcoes_da_chamada);
417
- }
418
- /**
419
- * Conecta a conta do Chatwoot
420
- *
421
- * Exige a permissão `criar` da área `configuracoes`. Aceita quantas contas do Chatwoot forem precisas; o `nome` e o par `endereco` + `conta_id` não se repetem (`409`). `nome` (até 100 caracteres), `endereco` do Chatwoot (`http://` ou `https://`, até 200), `conta_id` (maior que zero), `token_acesso` (de 8 a 200 caracteres) e `endereco_publico` (o endereço `https://` deste backend que o Chatwoot vai chamar, até 200) são obrigatórios. Antes de gravar, cria no Chatwoot o robô de atendimento que avisa o TermoSell das mensagens; se o Chatwoot recusar, responde `400` com o motivo. A configuração nasce ativa. O token de acesso nunca volta: as respostas trazem só `token_acesso_mascarado`.
422
- *
423
- * `POST /config_system_chatwoot`
424
- */
425
- export function criar_config_system_chatwoot(credencial_de_acesso, corpo_da_requisicao, opcoes_da_chamada) {
426
- return chamar_servico({
427
- servico: SERVICO_DESTA_API,
428
- metodo_http: "POST",
429
- caminho_da_rota: "/config_system_chatwoot",
430
- credencial_de_acesso,
431
- corpo_json: corpo_da_requisicao,
432
- formato_da_resposta: "json",
433
- }, opcoes_da_chamada);
434
- }
435
- /**
436
- * Lista básica de configurações do Chatwoot para seleção
437
- *
438
- * Exige qualquer permissão da área `configuracoes` (qualquer ação liberada na área já libera a leitura). Devolve só id, nome e endereço das configurações ativas, em ordem alfabética de nome. `busca` procura por trecho do nome, sem diferenciar maiúsculas. `pagina` começa em 1 (padrão 1) e `tamanho` tem padrão 10, sem máximo; valores menores que 1 viram 1. `total` conta os registros que casam com a busca.
439
- *
440
- * `GET /config_system_chatwoot/autocomplete`
441
- */
442
- export function buscar_auto_complete_config_system_chatwoot(credencial_de_acesso, parametros = {}, opcoes_da_chamada) {
443
- return chamar_servico({
444
- servico: SERVICO_DESTA_API,
445
- metodo_http: "GET",
446
- caminho_da_rota: "/config_system_chatwoot/autocomplete",
447
- credencial_de_acesso,
448
- parametros_de_consulta: parametros,
449
- formato_da_resposta: "json",
450
- }, opcoes_da_chamada);
451
- }
452
- /**
453
- * Busca configurações do Chatwoot por filtro
454
- *
455
- * Exige qualquer permissão da área `configuracoes` (qualquer ação liberada na área já libera a leitura). Devolve todas as configurações que casam com o filtro, sem paginação, em ordem alfabética de nome. `nome` e `endereco` procuram por trecho, sem diferenciar maiúsculas; `ativo` filtra pela situação. O token de acesso nunca volta: as respostas trazem só `token_acesso_mascarado`.
456
- *
457
- * `GET /config_system_chatwoot/filtro`
458
- */
459
- export function buscar_pelo_filtro_config_system_chatwoot(credencial_de_acesso, parametros = {}, opcoes_da_chamada) {
460
- return chamar_servico({
461
- servico: SERVICO_DESTA_API,
462
- metodo_http: "GET",
463
- caminho_da_rota: "/config_system_chatwoot/filtro",
464
- credencial_de_acesso,
465
- parametros_de_consulta: parametros,
466
- formato_da_resposta: "json",
467
- }, opcoes_da_chamada);
468
- }
469
- /**
470
- * Busca a configuração do Chatwoot pelo id
471
- *
472
- * Exige qualquer permissão da área `configuracoes` (qualquer ação liberada na área já libera a leitura). Configuração excluída responde `404`. `robo_chatwoot_id` é o id do robô de atendimento criado no Chatwoot. O token de acesso nunca volta: as respostas trazem só `token_acesso_mascarado`.
473
- *
474
- * `GET /config_system_chatwoot/{id}`
475
- */
476
- export function buscar_pelo_id_config_system_chatwoot(credencial_de_acesso, id, opcoes_da_chamada) {
477
- return chamar_servico({
478
- servico: SERVICO_DESTA_API,
479
- metodo_http: "GET",
480
- caminho_da_rota: `/config_system_chatwoot/${codificar_parametro_de_caminho(id)}`,
481
- credencial_de_acesso,
482
- formato_da_resposta: "json",
483
- }, opcoes_da_chamada);
484
- }
485
- /**
486
- * Atualiza a configuração do Chatwoot pelo id
487
- *
488
- * Exige a permissão `editar` da área `configuracoes`. Atualização parcial: só `nome` (até 100), `token_acesso` (de 8 a 200), `endereco_publico` (`https://`, até 200) e `ativo` mudam; o endereço e a conta do Chatwoot não. Trocar o token ou o endereço público atualiza antes o robô de atendimento no Chatwoot, e trocar o endereço público também refaz o webhook de cada número da Z-API ligado a esta conta; se o Chatwoot ou a Z-API recusarem, nada é gravado e a resposta é `400` com o motivo. O token de acesso nunca volta: as respostas trazem só `token_acesso_mascarado`.
489
- *
490
- * `PATCH /config_system_chatwoot/{id}`
491
- */
492
- export function atualizar_pelo_id_config_system_chatwoot(credencial_de_acesso, id, corpo_da_requisicao, opcoes_da_chamada) {
493
- return chamar_servico({
494
- servico: SERVICO_DESTA_API,
495
- metodo_http: "PATCH",
496
- caminho_da_rota: `/config_system_chatwoot/${codificar_parametro_de_caminho(id)}`,
497
- credencial_de_acesso,
498
- corpo_json: corpo_da_requisicao,
499
- formato_da_resposta: "json",
500
- }, opcoes_da_chamada);
501
- }
502
- /**
503
- * Exclui a configuração do Chatwoot pelo id
504
- *
505
- * Exige a permissão `deletar` da área `configuracoes`. A exclusão é lógica e não há como restaurar. Só exclui a configuração que não tem números de WhatsApp (Z-API) vinculados; exclua ou desvincule os números antes.
506
- *
507
- * `DELETE /config_system_chatwoot/{id}`
508
- */
509
- export function deletar_pelo_id_config_system_chatwoot(credencial_de_acesso, id, opcoes_da_chamada) {
510
- return chamar_servico({
511
- servico: SERVICO_DESTA_API,
512
- metodo_http: "DELETE",
513
- caminho_da_rota: `/config_system_chatwoot/${codificar_parametro_de_caminho(id)}`,
514
- credencial_de_acesso,
515
- formato_da_resposta: "sem_conteudo",
516
- }, opcoes_da_chamada);
517
- }
518
- /**
519
- * Lista básica dos números de WhatsApp conectados por QR Code para seleção
520
- *
521
- * Exige qualquer permissão da área `configuracoes` (qualquer ação liberada na área já libera a leitura). Devolve só id, nome e número (vazio até o celular ler o QR Code) de cada número conectado pelo QR Code, em ordem alfabética de nome. `busca` procura o trecho no nome (sem diferenciar maiúsculas) ou no número. `pagina` começa em 1 (padrão 1) e `tamanho` tem padrão 10, sem máximo; valores menores que 1 viram 1. `total` conta os registros que casam com a busca.
522
- *
523
- * `GET /config_system_whatsapp/autocomplete`
524
- */
525
- export function buscar_auto_complete_config_system_whatsapp(credencial_de_acesso, parametros = {}, opcoes_da_chamada) {
526
- return chamar_servico({
527
- servico: SERVICO_DESTA_API,
528
- metodo_http: "GET",
529
- caminho_da_rota: "/config_system_whatsapp/autocomplete",
530
- credencial_de_acesso,
531
- parametros_de_consulta: parametros,
532
- formato_da_resposta: "json",
533
- }, opcoes_da_chamada);
534
- }
535
- /**
536
- * Exclui um número de WhatsApp conectado por QR Code pelo id
537
- *
538
- * Exige a permissão `deletar` da área `configuracoes`. Desvincula o aparelho do celular (some de "Aparelhos conectados"), apaga a sessão guardada e faz a exclusão lógica, sem como restaurar: o TermoSell deixa de atender as mensagens que chegam pelo número.
539
- *
540
- * `DELETE /config_system_whatsapp/{id}`
541
- */
542
- export function deletar_pelo_id_config_system_whatsapp(credencial_de_acesso, id, opcoes_da_chamada) {
543
- return chamar_servico({
544
- servico: SERVICO_DESTA_API,
545
- metodo_http: "DELETE",
546
- caminho_da_rota: `/config_system_whatsapp/${codificar_parametro_de_caminho(id)}`,
547
- credencial_de_acesso,
548
- formato_da_resposta: "sem_conteudo",
549
- }, opcoes_da_chamada);
550
- }
551
- /**
552
- * Lista básica dos números de WhatsApp (Z-API) para seleção
553
- *
554
- * Exige qualquer permissão da área `configuracoes` (qualquer ação liberada na área já libera a leitura). Devolve só id, nome e número de cada número de WhatsApp conectado pela Z-API, em ordem alfabética de nome. `busca` procura o trecho no nome (sem diferenciar maiúsculas) ou no número. `pagina` começa em 1 (padrão 1) e `tamanho` tem padrão 10, sem máximo; valores menores que 1 viram 1. `total` conta os registros que casam com a busca.
555
- *
556
- * `GET /config_system_z_api/autocomplete`
557
- */
558
- export function buscar_auto_complete_config_system_z_api(credencial_de_acesso, parametros = {}, opcoes_da_chamada) {
559
- return chamar_servico({
560
- servico: SERVICO_DESTA_API,
561
- metodo_http: "GET",
562
- caminho_da_rota: "/config_system_z_api/autocomplete",
563
- credencial_de_acesso,
564
- parametros_de_consulta: parametros,
565
- formato_da_resposta: "json",
566
- }, opcoes_da_chamada);
567
- }
568
- /**
569
- * Exclui um número de WhatsApp (Z-API) pelo id
570
- *
571
- * Exige a permissão `deletar` da área `configuracoes`. A exclusão é lógica e não há como restaurar: o número some das consultas e o TermoSell deixa de atender as mensagens que chegam por ele.
572
- *
573
- * `DELETE /config_system_z_api/{id}`
574
- */
575
- export function deletar_pelo_id_config_system_z_api(credencial_de_acesso, id, opcoes_da_chamada) {
576
- return chamar_servico({
577
- servico: SERVICO_DESTA_API,
578
- metodo_http: "DELETE",
579
- caminho_da_rota: `/config_system_z_api/${codificar_parametro_de_caminho(id)}`,
580
- credencial_de_acesso,
581
- formato_da_resposta: "sem_conteudo",
582
- }, opcoes_da_chamada);
583
- }
584
- /**
585
- * Mostra a configuração do app (segredo do TermoAuth)
586
- *
587
- * Só um master do TermoAuth. O segredo do app gerado no TermoAuth nunca volta: a resposta traz só `configurado` e os últimos caracteres mascarados em `final_visivel`. `criptografia_disponivel` é falso quando o servidor está sem a `GLOBAL_SECRET_CRIPTOGRAFIA`; nesse caso nada pode ser lido nem gravado. `atualizado_em` é nulo enquanto ninguém gravou a configuração.
588
- *
589
- * `GET /configuracao`
590
- */
591
- export function buscar_pelo_id_configuracao(credencial_de_acesso, opcoes_da_chamada) {
592
- return chamar_servico({
593
- servico: SERVICO_DESTA_API,
594
- metodo_http: "GET",
595
- caminho_da_rota: "/configuracao",
596
- credencial_de_acesso,
597
- formato_da_resposta: "json",
598
- }, opcoes_da_chamada);
599
- }
600
- /**
601
- * Grava o segredo do app gerado no TermoAuth
602
- *
603
- * Só um master do TermoAuth. Campo ausente fica como está, texto troca e `null` limpa. O segredo é gravado cifrado (AES-256-GCM com a `GLOBAL_SECRET_CRIPTOGRAFIA`) e entregue na hora ao `termo_core`, sem deploy. Até 2.000 caracteres, sem quebra de linha.
604
- *
605
- * `PATCH /configuracao`
606
- */
607
- export function atualizar_pelo_id_configuracao(credencial_de_acesso, corpo_da_requisicao, opcoes_da_chamada) {
608
- return chamar_servico({
609
- servico: SERVICO_DESTA_API,
610
- metodo_http: "PATCH",
611
- caminho_da_rota: "/configuracao",
612
- credencial_de_acesso,
613
- corpo_json: corpo_da_requisicao,
614
- formato_da_resposta: "json",
615
- }, opcoes_da_chamada);
616
- }
617
- /**
618
- * Lista as conversas com paginação
619
- *
620
- * Exige qualquer permissão da área `clientes` (qualquer ação liberada na área já libera a leitura). Ordena da última mensagem mais recente para a mais antiga. `pagina` começa em 1 (padrão 1; valores menores viram 1). A página tem sempre 50 itens: `tamanho` é aceito, mas ignorado. `status` (opcional) limita a um status. `total` conta os registros não excluídos que casam com o `status`.
621
- *
622
- * `GET /conversa`
623
- */
624
- export function buscar_paginador_conversa(credencial_de_acesso, parametros = {}, opcoes_da_chamada) {
625
- return chamar_servico({
626
- servico: SERVICO_DESTA_API,
627
- metodo_http: "GET",
628
- caminho_da_rota: "/conversa",
629
- credencial_de_acesso,
630
- parametros_de_consulta: parametros,
631
- formato_da_resposta: "json",
632
- }, opcoes_da_chamada);
633
- }
634
- /**
635
- * Não cria conversa pela tela
636
- *
637
- * Exige a permissão `criar` da área `clientes`, mas responde sempre `403`: a conversa é registrada pelos webhooks do Chatwoot e da Z-API, que gravam toda mensagem visível que passa pela conta do Chatwoot. Sem corpo.
638
- *
639
- * `POST /conversa`
640
- */
641
- export function criar_conversa(credencial_de_acesso, opcoes_da_chamada) {
642
- return chamar_servico({
643
- servico: SERVICO_DESTA_API,
644
- metodo_http: "POST",
645
- caminho_da_rota: "/conversa",
646
- credencial_de_acesso,
647
- formato_da_resposta: "sem_conteudo",
648
- }, opcoes_da_chamada);
649
- }
650
- /**
651
- * Lista básica de conversas para seleção
652
- *
653
- * Exige qualquer permissão da área `clientes` (qualquer ação liberada na área já libera a leitura). Devolve só id, id da conversa no Chatwoot, nome e telefone do contato, em ordem alfabética do nome do contato. `busca` procura o trecho no nome do contato (sem diferenciar maiúsculas) ou no telefone. `pagina` começa em 1 (padrão 1) e `tamanho` tem padrão 10, sem máximo; valores menores que 1 viram 1. `total` conta os registros que casam com a busca.
654
- *
655
- * `GET /conversa/autocomplete`
656
- */
657
- export function buscar_auto_complete_conversa(credencial_de_acesso, parametros = {}, opcoes_da_chamada) {
658
- return chamar_servico({
659
- servico: SERVICO_DESTA_API,
660
- metodo_http: "GET",
661
- caminho_da_rota: "/conversa/autocomplete",
662
- credencial_de_acesso,
663
- parametros_de_consulta: parametros,
664
- formato_da_resposta: "json",
665
- }, opcoes_da_chamada);
666
- }
667
- /**
668
- * Busca conversas por filtro
669
- *
670
- * Exige qualquer permissão da área `clientes` (qualquer ação liberada na área já libera a leitura). Devolve até 500 conversas que casam com o filtro, da última mensagem mais recente para a mais antiga. `cliente_id`, `robo_id`, `config_system_z_api_id` e `chatwoot_conversa_id` comparam o valor exato; `status` compara o status exato; `contato` procura o trecho no nome do contato, na razão social do cliente ou nos dígitos do telefone; `texto` procura o trecho no conteúdo de qualquer mensagem da conversa; todos sem diferenciar maiúsculas. Sem filtro, devolve as 500 mais recentes. É por `cliente_id` que a guia "Histórico de conversas" do cliente lê o histórico.
671
- *
672
- * `GET /conversa/filtro`
673
- */
674
- export function buscar_pelo_filtro_conversa(credencial_de_acesso, parametros = {}, opcoes_da_chamada) {
675
- return chamar_servico({
676
- servico: SERVICO_DESTA_API,
677
- metodo_http: "GET",
678
- caminho_da_rota: "/conversa/filtro",
679
- credencial_de_acesso,
680
- parametros_de_consulta: parametros,
681
- formato_da_resposta: "json",
682
- }, opcoes_da_chamada);
683
- }
684
- /**
685
- * Busca uma conversa pelo id
686
- *
687
- * Exige qualquer permissão da área `clientes` (qualquer ação liberada na área já libera a leitura). Devolve a conversa do histórico interno com o nome do número do WhatsApp, do cliente e do robô, o `status` espelhado do Chatwoot (`pending` com o robô, `open` com a equipe, `resolved`, `snoozed`), a etapa atual do fluxo, a última mensagem de cada lado, `transferida_em`/`transferida_motivo` (`sem_resposta` quando o gatilho passou a conversa para a equipe), `quantidade_mensagens` e `chatwoot_endereco_conversa` (link da conversa no painel do Chatwoot). Datas em RFC 3339. Conversa excluída responde `404`.
688
- *
689
- * `GET /conversa/{id}`
690
- */
691
- export function buscar_pelo_id_conversa(credencial_de_acesso, id, opcoes_da_chamada) {
692
- return chamar_servico({
693
- servico: SERVICO_DESTA_API,
694
- metodo_http: "GET",
695
- caminho_da_rota: `/conversa/${codificar_parametro_de_caminho(id)}`,
696
- credencial_de_acesso,
697
- formato_da_resposta: "json",
698
- }, opcoes_da_chamada);
699
- }
700
- /**
701
- * Atualiza uma conversa pelo id
702
- *
703
- * Exige a permissão `editar` da área `clientes`. Atualização parcial: só os campos enviados mudam. `cliente_id` vincula a conversa a um cliente, `robo_id` a um robô e `status` corrige o status gravado (`pending`, `open`, `resolved` ou `snoozed`) sem alterar nada no Chatwoot. As mensagens e os demais campos vêm só dos webhooks.
704
- *
705
- * `PATCH /conversa/{id}`
706
- */
707
- export function atualizar_pelo_id_conversa(credencial_de_acesso, id, corpo_da_requisicao, opcoes_da_chamada) {
708
- return chamar_servico({
709
- servico: SERVICO_DESTA_API,
710
- metodo_http: "PATCH",
711
- caminho_da_rota: `/conversa/${codificar_parametro_de_caminho(id)}`,
712
- credencial_de_acesso,
713
- corpo_json: corpo_da_requisicao,
714
- formato_da_resposta: "json",
715
- }, opcoes_da_chamada);
716
- }
717
- /**
718
- * Exclui uma conversa do histórico pelo id
719
- *
720
- * Exige a permissão `deletar` da área `clientes`. A exclusão é lógica e leva junto as mensagens, na mesma transação: a conversa some do histórico interno e não há como restaurar. A conversa no Chatwoot não é alterada; uma mensagem nova dela cria um registro novo no histórico.
721
- *
722
- * `DELETE /conversa/{id}`
723
- */
724
- export function deletar_pelo_id_conversa(credencial_de_acesso, id, opcoes_da_chamada) {
725
- return chamar_servico({
726
- servico: SERVICO_DESTA_API,
727
- metodo_http: "DELETE",
728
- caminho_da_rota: `/conversa/${codificar_parametro_de_caminho(id)}`,
729
- credencial_de_acesso,
730
- formato_da_resposta: "sem_conteudo",
731
- }, opcoes_da_chamada);
732
- }
733
- /**
734
- * Lista as mensagens de uma conversa
735
- *
736
- * Exige qualquer permissão da área `clientes` (qualquer ação liberada na área já libera a leitura). Devolve as mensagens gravadas no histórico interno, em ordem de envio, sem as notas privadas da equipe. `autor` é `contato`, `atendente` ou `robo`; `etapa_id` é a etapa do fluxo em que o robô mandou a mensagem; `criada_em` é a data de criação no Chatwoot, em RFC 3339. `anexos` lista os arquivos da mensagem (`tipo` do Chatwoot, `nome`, `endereco` no Chatwoot); cada um é copiado para o TermoBucket (arquivo privado do app `spark-sell`) logo depois do webhook e, quando já está lá, traz `arquivo_id`, `tipo_mime`, `tamanho` e `url`, o download assinado por 15 minutos. O que falhar é tentado de novo a cada 30 minutos, até 5 vezes.
737
- *
738
- * `GET /conversa/{id}/mensagens`
739
- */
740
- export function buscar_mensagens_conversa(credencial_de_acesso, id, opcoes_da_chamada) {
741
- return chamar_servico({
742
- servico: SERVICO_DESTA_API,
743
- metodo_http: "GET",
744
- caminho_da_rota: `/conversa/${codificar_parametro_de_caminho(id)}/mensagens`,
745
- credencial_de_acesso,
746
- formato_da_resposta: "json",
747
- }, opcoes_da_chamada);
748
- }
749
- /**
750
- * Indicadores gerenciais do atendimento
751
- *
752
- * Exige qualquer permissão da área `clientes` (qualquer ação liberada na área já libera a leitura). Monta o painel do atendimento a partir do histórico interno de conversas. `dias` é o período (padrão 30, entre 1 e 365) contado em dias inteiros no horário de Brasília, de `inicio` até agora; `robo_id` (opcional) limita às conversas de um robô. `indicadores` traz as conversas novas do período e do período anterior de mesmo tamanho, as conversas e os clientes com mensagem do contato no período, as mensagens recebidas, do robô e da equipe, as conversas novas que passaram para a equipe (transferidas, abertas ou com mensagem de atendente), as resolvidas só pelo robô, as transferidas pelo gatilho de cliente sem resposta, as conversas em aberto cuja última mensagem é do contato e a mediana, em segundos, da primeira resposta (qualquer lado) e da primeira resposta da equipe. `situacao_atual` conta todas as conversas por `status`, sem recorte de período. `por_dia` e `por_hora` distribuem as mensagens no horário de Brasília; `por_robo` e `por_canal` agrupam as conversas; `aguardando_resposta` lista as 10 conversas em aberto que esperam resposta há mais tempo.
753
- *
754
- * `GET /dashboard/filtro`
755
- */
756
- export function buscar_pelo_filtro_dashboard(credencial_de_acesso, parametros = {}, opcoes_da_chamada) {
757
- return chamar_servico({
758
- servico: SERVICO_DESTA_API,
759
- metodo_http: "GET",
760
- caminho_da_rota: "/dashboard/filtro",
761
- credencial_de_acesso,
762
- parametros_de_consulta: parametros,
763
- formato_da_resposta: "json",
764
- }, opcoes_da_chamada);
765
- }
766
- /**
767
- * Lista os perfis de acesso com paginação
768
- *
769
- * Exige qualquer permissão da área `colaboradores` (qualquer ação liberada na área já libera a leitura). Ordena pelo nome. `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 todos os registros não excluídos.
770
- *
771
- * `GET /perfil_acesso`
772
- */
773
- export function buscar_paginador_perfil_acesso(credencial_de_acesso, parametros = {}, opcoes_da_chamada) {
774
- return chamar_servico({
775
- servico: SERVICO_DESTA_API,
776
- metodo_http: "GET",
777
- caminho_da_rota: "/perfil_acesso",
778
- credencial_de_acesso,
779
- parametros_de_consulta: parametros,
780
- formato_da_resposta: "json",
781
- }, opcoes_da_chamada);
782
- }
783
- /**
784
- * Cria um perfil de acesso
785
- *
786
- * Exige a permissão `criar` da área `colaboradores`. O perfil de acesso é o conjunto de permissões que o TermoSell 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`, `colaboradores`, `configuracoes`), 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.
787
- *
788
- * `POST /perfil_acesso`
789
- */
790
- export function criar_perfil_acesso(credencial_de_acesso, corpo_da_requisicao, opcoes_da_chamada) {
791
- return chamar_servico({
792
- servico: SERVICO_DESTA_API,
793
- metodo_http: "POST",
794
- caminho_da_rota: "/perfil_acesso",
795
- credencial_de_acesso,
796
- corpo_json: corpo_da_requisicao,
797
- formato_da_resposta: "json",
798
- }, opcoes_da_chamada);
799
- }
800
- /**
801
- * Lista básica de perfis de acesso para seleção
802
- *
803
- * 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` começa em 1 (padrão 1) e `tamanho` tem padrão 10, sem máximo; valores menores que 1 viram 1. `total` conta os registros que casam com a busca.
804
- *
805
- * `GET /perfil_acesso/autocomplete`
806
- */
807
- export function buscar_auto_complete_perfil_acesso(credencial_de_acesso, parametros = {}, opcoes_da_chamada) {
808
- return chamar_servico({
809
- servico: SERVICO_DESTA_API,
810
- metodo_http: "GET",
811
- caminho_da_rota: "/perfil_acesso/autocomplete",
812
- credencial_de_acesso,
813
- parametros_de_consulta: parametros,
814
- formato_da_resposta: "json",
815
- }, opcoes_da_chamada);
816
- }
817
- /**
818
- * Busca perfis de acesso por filtro
819
- *
820
- * 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).
821
- *
822
- * `GET /perfil_acesso/filtro`
823
- */
824
- export function buscar_pelo_filtro_perfil_acesso(credencial_de_acesso, parametros = {}, opcoes_da_chamada) {
825
- return chamar_servico({
826
- servico: SERVICO_DESTA_API,
827
- metodo_http: "GET",
828
- caminho_da_rota: "/perfil_acesso/filtro",
829
- credencial_de_acesso,
830
- parametros_de_consulta: parametros,
831
- formato_da_resposta: "json",
832
- }, opcoes_da_chamada);
833
- }
834
- /**
835
- * Busca um perfil de acesso pelo id
836
- *
837
- * Exige qualquer permissão da área `colaboradores` (qualquer ação liberada na área já libera a leitura). Perfil excluído responde `404`.
838
- *
839
- * `GET /perfil_acesso/{id}`
840
- */
841
- export function buscar_pelo_id_perfil_acesso(credencial_de_acesso, id, opcoes_da_chamada) {
842
- return chamar_servico({
843
- servico: SERVICO_DESTA_API,
844
- metodo_http: "GET",
845
- caminho_da_rota: `/perfil_acesso/${codificar_parametro_de_caminho(id)}`,
846
- credencial_de_acesso,
847
- formato_da_resposta: "json",
848
- }, opcoes_da_chamada);
849
- }
850
- /**
851
- * Atualiza um perfil de acesso pelo id
852
- *
853
- * 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).
854
- *
855
- * `PATCH /perfil_acesso/{id}`
856
- */
857
- export function atualizar_pelo_id_perfil_acesso(credencial_de_acesso, id, corpo_da_requisicao, opcoes_da_chamada) {
858
- return chamar_servico({
859
- servico: SERVICO_DESTA_API,
860
- metodo_http: "PATCH",
861
- caminho_da_rota: `/perfil_acesso/${codificar_parametro_de_caminho(id)}`,
862
- credencial_de_acesso,
863
- corpo_json: corpo_da_requisicao,
864
- formato_da_resposta: "json",
865
- }, opcoes_da_chamada);
866
- }
867
- /**
868
- * Exclui um perfil de acesso pelo id
869
- *
870
- * 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.
871
- *
872
- * `DELETE /perfil_acesso/{id}`
873
- */
874
- export function deletar_pelo_id_perfil_acesso(credencial_de_acesso, id, opcoes_da_chamada) {
875
- return chamar_servico({
876
- servico: SERVICO_DESTA_API,
877
- metodo_http: "DELETE",
878
- caminho_da_rota: `/perfil_acesso/${codificar_parametro_de_caminho(id)}`,
879
- credencial_de_acesso,
880
- formato_da_resposta: "sem_conteudo",
881
- }, opcoes_da_chamada);
882
- }
883
- /**
884
- * Lista os robôs com paginação
885
- *
886
- * Exige qualquer permissão da área `configuracoes` (qualquer ação liberada na área já libera a leitura). Ordena por nome. `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 todos os registros não excluídos.
887
- *
888
- * `GET /robo`
889
- */
890
- export function buscar_paginador_robo(credencial_de_acesso, parametros = {}, opcoes_da_chamada) {
891
- return chamar_servico({
892
- servico: SERVICO_DESTA_API,
893
- metodo_http: "GET",
894
- caminho_da_rota: "/robo",
895
- credencial_de_acesso,
896
- parametros_de_consulta: parametros,
897
- formato_da_resposta: "json",
898
- }, opcoes_da_chamada);
899
- }
900
4
  /**
901
5
  * Cadastra um robô de atendimento
902
6
  *
@@ -914,89 +18,6 @@ export function criar_robo(credencial_de_acesso, corpo_da_requisicao, opcoes_da_
914
18
  formato_da_resposta: "json",
915
19
  }, opcoes_da_chamada);
916
20
  }
917
- /**
918
- * Lista básica de robôs para seleção
919
- *
920
- * Exige qualquer permissão da área `configuracoes` (qualquer ação liberada na área já libera a leitura). Devolve só id, nome e modelo, em ordem alfabética de nome. `busca` procura por trecho do nome, sem diferenciar maiúsculas. `pagina` começa em 1 (padrão 1) e `tamanho` tem padrão 10, sem máximo; valores menores que 1 viram 1. `total` conta os registros que casam com a busca.
921
- *
922
- * `GET /robo/autocomplete`
923
- */
924
- export function buscar_auto_complete_robo(credencial_de_acesso, parametros = {}, opcoes_da_chamada) {
925
- return chamar_servico({
926
- servico: SERVICO_DESTA_API,
927
- metodo_http: "GET",
928
- caminho_da_rota: "/robo/autocomplete",
929
- credencial_de_acesso,
930
- parametros_de_consulta: parametros,
931
- formato_da_resposta: "json",
932
- }, opcoes_da_chamada);
933
- }
934
- /**
935
- * Lista as equipes do Chatwoot
936
- *
937
- * Exige qualquer permissão da área `configuracoes` (qualquer ação liberada na área já libera a leitura). Consulta na hora as equipes (id e nome) de uma conta do Chatwoot ativa, para escolher a `equipe_id` da etapa `atendimento` ou do `gatilho` do fluxo. Com `robo_id`, usa a conta do Chatwoot dos números de WhatsApp (Z-API ou QR Code) ligados a esse robô; sem `robo_id` ou sem número ligado, usa a primeira conta ativa.
938
- *
939
- * `GET /robo/equipes`
940
- */
941
- export function buscar_equipes_robo(credencial_de_acesso, parametros = {}, opcoes_da_chamada) {
942
- return chamar_servico({
943
- servico: SERVICO_DESTA_API,
944
- metodo_http: "GET",
945
- caminho_da_rota: "/robo/equipes",
946
- credencial_de_acesso,
947
- parametros_de_consulta: parametros,
948
- formato_da_resposta: "json",
949
- }, opcoes_da_chamada);
950
- }
951
- /**
952
- * Busca robôs por filtro
953
- *
954
- * Exige qualquer permissão da área `configuracoes` (qualquer ação liberada na área já libera a leitura). Devolve todos os robôs que casam com o filtro, com o fluxo, sem paginação, em ordem alfabética de nome. `nome` e `modelo` procuram por trecho, sem diferenciar maiúsculas; `ativo` filtra pela situação. Sem filtro, devolve todos.
955
- *
956
- * `GET /robo/filtro`
957
- */
958
- export function buscar_pelo_filtro_robo(credencial_de_acesso, parametros = {}, opcoes_da_chamada) {
959
- return chamar_servico({
960
- servico: SERVICO_DESTA_API,
961
- metodo_http: "GET",
962
- caminho_da_rota: "/robo/filtro",
963
- credencial_de_acesso,
964
- parametros_de_consulta: parametros,
965
- formato_da_resposta: "json",
966
- }, opcoes_da_chamada);
967
- }
968
- /**
969
- * Lista os modelos de IA que o robô pode usar
970
- *
971
- * Exige qualquer permissão da área `configuracoes` (qualquer ação liberada na área já libera a leitura). Consulta na hora o gateway do TermoAI (`GET /gateway/modelos`, categoria `texto_para_texto`, com o token do aplicativo) e devolve as IAs com chave ativa lá: `provedor` (o valor que vai em `modelo` do robô), `empresa`, `modelo`, `url_da_logo`, `logo_monocromatica`, `gratuito`, `aceita_ferramentas` e `chaves_ativas`. O robô com `modelo` vazio deixa o TermoAI escolher; com um `provedor`, o TermoAI usa essa IA primeiro e só troca para outra quando ela falha.
972
- *
973
- * `GET /robo/modelos`
974
- */
975
- export function buscar_modelos_robo(credencial_de_acesso, opcoes_da_chamada) {
976
- return chamar_servico({
977
- servico: SERVICO_DESTA_API,
978
- metodo_http: "GET",
979
- caminho_da_rota: "/robo/modelos",
980
- credencial_de_acesso,
981
- formato_da_resposta: "json",
982
- }, opcoes_da_chamada);
983
- }
984
- /**
985
- * Busca um robô pelo id
986
- *
987
- * Exige qualquer permissão da área `configuracoes` (qualquer ação liberada na área já libera a leitura). Devolve o robô com o fluxo completo. Robô excluído responde `404`.
988
- *
989
- * `GET /robo/{id}`
990
- */
991
- export function buscar_pelo_id_robo(credencial_de_acesso, id, opcoes_da_chamada) {
992
- return chamar_servico({
993
- servico: SERVICO_DESTA_API,
994
- metodo_http: "GET",
995
- caminho_da_rota: `/robo/${codificar_parametro_de_caminho(id)}`,
996
- credencial_de_acesso,
997
- formato_da_resposta: "json",
998
- }, opcoes_da_chamada);
999
- }
1000
21
  /**
1001
22
  * Atualiza um robô pelo id
1002
23
  *
@@ -1014,202 +35,3 @@ export function atualizar_pelo_id_robo(credencial_de_acesso, id, corpo_da_requis
1014
35
  formato_da_resposta: "json",
1015
36
  }, opcoes_da_chamada);
1016
37
  }
1017
- /**
1018
- * Exclui um robô pelo id
1019
- *
1020
- * Exige a permissão `deletar` da área `configuracoes`. A exclusão é lógica: o robô some das consultas, o nome fica livre para um novo cadastro e não há como restaurar.
1021
- *
1022
- * `DELETE /robo/{id}`
1023
- */
1024
- export function deletar_pelo_id_robo(credencial_de_acesso, id, opcoes_da_chamada) {
1025
- return chamar_servico({
1026
- servico: SERVICO_DESTA_API,
1027
- metodo_http: "DELETE",
1028
- caminho_da_rota: `/robo/${codificar_parametro_de_caminho(id)}`,
1029
- credencial_de_acesso,
1030
- formato_da_resposta: "sem_conteudo",
1031
- }, opcoes_da_chamada);
1032
- }
1033
- /**
1034
- * Lista as ferramentas com paginação
1035
- *
1036
- * Exige qualquer permissão da área `configuracoes` (qualquer ação liberada na área já libera a leitura). Ordena pelo rótulo. `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 todos os registros não excluídos.
1037
- *
1038
- * `GET /robo_ferramenta`
1039
- */
1040
- export function buscar_paginador_robo_ferramenta(credencial_de_acesso, parametros = {}, opcoes_da_chamada) {
1041
- return chamar_servico({
1042
- servico: SERVICO_DESTA_API,
1043
- metodo_http: "GET",
1044
- caminho_da_rota: "/robo_ferramenta",
1045
- credencial_de_acesso,
1046
- parametros_de_consulta: parametros,
1047
- formato_da_resposta: "json",
1048
- }, opcoes_da_chamada);
1049
- }
1050
- /**
1051
- * Cadastra uma ferramenta do robô
1052
- *
1053
- * Exige a permissão `criar` da área `configuracoes`. Cadastra uma ferramenta que as etapas do robô podem liberar para a IA. `nome` é o nome técnico (só letras minúsculas, números e `_`, até 60 caracteres, único); `rotulo` (até 80) e `descricao` (até 500) são obrigatórios; `tipo` é `leitura` ou `escrita`; `exige_confirmacao` tem padrão `false`; `esquema` é o JSON Schema dos parâmetros (padrão: objeto sem propriedades). A ferramenta nasce ativa.
1054
- *
1055
- * `POST /robo_ferramenta`
1056
- */
1057
- export function criar_robo_ferramenta(credencial_de_acesso, corpo_da_requisicao, opcoes_da_chamada) {
1058
- return chamar_servico({
1059
- servico: SERVICO_DESTA_API,
1060
- metodo_http: "POST",
1061
- caminho_da_rota: "/robo_ferramenta",
1062
- credencial_de_acesso,
1063
- corpo_json: corpo_da_requisicao,
1064
- formato_da_resposta: "json",
1065
- }, opcoes_da_chamada);
1066
- }
1067
- /**
1068
- * Lista básica de ferramentas para seleção
1069
- *
1070
- * Exige qualquer permissão da área `configuracoes` (qualquer ação liberada na área já libera a leitura). Devolve só id, nome técnico e rótulo das ferramentas ativas, em ordem alfabética do rótulo. `busca` procura por trecho do rótulo ou do nome técnico, sem diferenciar maiúsculas. `pagina` começa em 1 (padrão 1) e `tamanho` tem padrão 10, sem máximo; valores menores que 1 viram 1. `total` conta os registros que casam com a busca.
1071
- *
1072
- * `GET /robo_ferramenta/autocomplete`
1073
- */
1074
- export function buscar_auto_complete_robo_ferramenta(credencial_de_acesso, parametros = {}, opcoes_da_chamada) {
1075
- return chamar_servico({
1076
- servico: SERVICO_DESTA_API,
1077
- metodo_http: "GET",
1078
- caminho_da_rota: "/robo_ferramenta/autocomplete",
1079
- credencial_de_acesso,
1080
- parametros_de_consulta: parametros,
1081
- formato_da_resposta: "json",
1082
- }, opcoes_da_chamada);
1083
- }
1084
- /**
1085
- * Busca ferramentas por filtro
1086
- *
1087
- * Exige qualquer permissão da área `configuracoes` (qualquer ação liberada na área já libera a leitura). Devolve todas as ferramentas que casam com o filtro, sem paginação, em ordem alfabética do rótulo. `nome` procura por trecho do nome técnico, sem diferenciar maiúsculas; `tipo` compara o valor exato (`leitura` ou `escrita`); `ativo` filtra pela situação. Sem filtro, devolve todas.
1088
- *
1089
- * `GET /robo_ferramenta/filtro`
1090
- */
1091
- export function buscar_pelo_filtro_robo_ferramenta(credencial_de_acesso, parametros = {}, opcoes_da_chamada) {
1092
- return chamar_servico({
1093
- servico: SERVICO_DESTA_API,
1094
- metodo_http: "GET",
1095
- caminho_da_rota: "/robo_ferramenta/filtro",
1096
- credencial_de_acesso,
1097
- parametros_de_consulta: parametros,
1098
- formato_da_resposta: "json",
1099
- }, opcoes_da_chamada);
1100
- }
1101
- /**
1102
- * Busca uma ferramenta pelo id
1103
- *
1104
- * Exige qualquer permissão da área `configuracoes` (qualquer ação liberada na área já libera a leitura). Ferramenta excluída responde `404`.
1105
- *
1106
- * `GET /robo_ferramenta/{id}`
1107
- */
1108
- export function buscar_pelo_id_robo_ferramenta(credencial_de_acesso, id, opcoes_da_chamada) {
1109
- return chamar_servico({
1110
- servico: SERVICO_DESTA_API,
1111
- metodo_http: "GET",
1112
- caminho_da_rota: `/robo_ferramenta/${codificar_parametro_de_caminho(id)}`,
1113
- credencial_de_acesso,
1114
- formato_da_resposta: "json",
1115
- }, opcoes_da_chamada);
1116
- }
1117
- /**
1118
- * Atualiza uma ferramenta pelo id
1119
- *
1120
- * Exige a permissão `editar` da área `configuracoes`. Atualização parcial: só os campos enviados mudam. `rotulo` (até 80) e `descricao` (até 500) não podem ficar vazios; `tipo` é `leitura` ou `escrita`; `esquema` substitui o JSON Schema inteiro; `ativo` liga ou desliga a ferramenta. O nome técnico não muda.
1121
- *
1122
- * `PATCH /robo_ferramenta/{id}`
1123
- */
1124
- export function atualizar_pelo_id_robo_ferramenta(credencial_de_acesso, id, corpo_da_requisicao, opcoes_da_chamada) {
1125
- return chamar_servico({
1126
- servico: SERVICO_DESTA_API,
1127
- metodo_http: "PATCH",
1128
- caminho_da_rota: `/robo_ferramenta/${codificar_parametro_de_caminho(id)}`,
1129
- credencial_de_acesso,
1130
- corpo_json: corpo_da_requisicao,
1131
- formato_da_resposta: "json",
1132
- }, opcoes_da_chamada);
1133
- }
1134
- /**
1135
- * Exclui uma ferramenta pelo id
1136
- *
1137
- * Exige a permissão `deletar` da área `configuracoes`. A exclusão é lógica: a ferramenta some das consultas, o nome técnico fica livre e não há como restaurar.
1138
- *
1139
- * `DELETE /robo_ferramenta/{id}`
1140
- */
1141
- export function deletar_pelo_id_robo_ferramenta(credencial_de_acesso, id, opcoes_da_chamada) {
1142
- return chamar_servico({
1143
- servico: SERVICO_DESTA_API,
1144
- metodo_http: "DELETE",
1145
- caminho_da_rota: `/robo_ferramenta/${codificar_parametro_de_caminho(id)}`,
1146
- credencial_de_acesso,
1147
- formato_da_resposta: "sem_conteudo",
1148
- }, opcoes_da_chamada);
1149
- }
1150
- /**
1151
- * Verifica se o backend está no ar
1152
- *
1153
- * Pública, sem token. Responde `200` com `sucesso: true` e a versão do backend no ar (semver) sempre que o servidor está de pé; não consulta o banco nem o TermoAuth.
1154
- *
1155
- * `GET /test`
1156
- */
1157
- export function verificar_saude_test(opcoes_da_chamada) {
1158
- return chamar_servico({
1159
- servico: SERVICO_DESTA_API,
1160
- metodo_http: "GET",
1161
- caminho_da_rota: "/test",
1162
- formato_da_resposta: "json",
1163
- }, opcoes_da_chamada);
1164
- }
1165
- /**
1166
- * Recebe os eventos do Chatwoot
1167
- *
1168
- * Pública, sem token do usuário: é chamada pelo robô de atendimento que o TermoSell cria na conta do Chatwoot, com o `segredo` da configuração no endereço. O corpo é o evento do Chatwoot como ele envia. Só `message_created` que não é nota privada e chega por uma caixa ligada a um número da Z-API é tratado: mensagem da equipe vai para o WhatsApp pela Z-API, e mensagem do cliente numa conversa pendente é respondida pelo robô em segundo plano, seguindo o fluxo do robô do número. O resto é ignorado com `200`.
1169
- *
1170
- * `POST /webhooks/chatwoot`
1171
- */
1172
- export function receber_evento_chatwoot_webhooks(parametros, corpo_da_requisicao, opcoes_da_chamada) {
1173
- return chamar_servico({
1174
- servico: SERVICO_DESTA_API,
1175
- metodo_http: "POST",
1176
- caminho_da_rota: "/webhooks/chatwoot",
1177
- parametros_de_consulta: parametros,
1178
- corpo_json: corpo_da_requisicao,
1179
- formato_da_resposta: "sem_conteudo",
1180
- }, opcoes_da_chamada);
1181
- }
1182
- /**
1183
- * Recebe as entregas do TermoWebhook
1184
- *
1185
- * Pública, sem token do usuário: é chamada pelo TermoWebhook, o hub de eventos da Termotubos, para entregar os eventos que o TermoSell assina. A entrega é conferida pela assinatura Ed25519 do hub (chave pública em `/.well-known/jwks.json` do TermoWebhook), pela data e pelo destino, que precisa ser o próprio TermoSell. Eventos tratados: `colaborador.criado` e `colaborador.atualizado`, versões 1 e 2, publicados pelo TermoAuth: criam ou atualizam o colaborador e o acesso dele (a v2 também traz setor, cargo e função), descartando o evento mais antigo que o último aplicado. Qualquer outro tipo responde `200` sem fazer nada. Como o hub entrega pelo menos uma vez, repetir o mesmo evento é seguro.
1186
- *
1187
- * `POST /webhooks/termowebhook`
1188
- */
1189
- export function receber_evento_termo_webhook_webhooks(parametros, corpo_da_requisicao, opcoes_da_chamada) {
1190
- return chamar_servico({
1191
- servico: SERVICO_DESTA_API,
1192
- metodo_http: "POST",
1193
- caminho_da_rota: "/webhooks/termowebhook",
1194
- cabecalhos: { "X-TermoWebhook-Data": parametros["X-TermoWebhook-Data"], "X-TermoWebhook-Chave": parametros["X-TermoWebhook-Chave"], "X-TermoWebhook-Destino": parametros["X-TermoWebhook-Destino"], "X-TermoWebhook-Assinatura": parametros["X-TermoWebhook-Assinatura"] },
1195
- corpo_json: corpo_da_requisicao,
1196
- formato_da_resposta: "sem_conteudo",
1197
- }, opcoes_da_chamada);
1198
- }
1199
- /**
1200
- * Recebe as mensagens do WhatsApp pela Z-API
1201
- *
1202
- * Pública, sem token do usuário: é chamada pela Z-API, com o `segredo` do número no endereço. O corpo é o evento da Z-API como ela envia; o `instanceId` dele precisa ser o da instância do número dono do `segredo`. Mensagem recebida de conversa individual, num número ativo e ligado a uma caixa do Chatwoot, é registrada no Chatwoot (a mesma mensagem não é registrada duas vezes); grupos, canais, transmissões e ecos do próprio sistema são ignorados com `200`.
1203
- *
1204
- * `POST /webhooks/z_api`
1205
- */
1206
- export function receber_evento_z_api_webhooks(parametros, corpo_da_requisicao, opcoes_da_chamada) {
1207
- return chamar_servico({
1208
- servico: SERVICO_DESTA_API,
1209
- metodo_http: "POST",
1210
- caminho_da_rota: "/webhooks/z_api",
1211
- parametros_de_consulta: parametros,
1212
- corpo_json: corpo_da_requisicao,
1213
- formato_da_resposta: "sem_conteudo",
1214
- }, opcoes_da_chamada);
1215
- }