termo_core 0.1.13 → 0.1.15
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.
- package/dist/agenda/index.d.ts +6 -0
- package/dist/agenda/index.js +7 -0
- package/dist/agenda/rotas.d.ts +281 -0
- package/dist/agenda/rotas.js +387 -0
- package/dist/agenda/tipos.d.ts +325 -0
- package/dist/agenda/tipos.js +2 -0
- package/dist/auth/rotas.d.ts +7 -1
- package/dist/auth/rotas.js +1 -1
- package/dist/base/servicos.d.ts +3 -0
- package/dist/base/servicos.js +27 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +3 -0
- package/dist/meet/index.d.ts +6 -0
- package/dist/meet/index.js +7 -0
- package/dist/meet/rotas.d.ts +119 -0
- package/dist/meet/rotas.js +152 -0
- package/dist/meet/tipos.d.ts +122 -0
- package/dist/meet/tipos.js +2 -0
- package/dist/portal/rotas.d.ts +64 -0
- package/dist/portal/rotas.js +68 -0
- package/dist/portal/tipos.d.ts +57 -0
- package/dist/talk/index.d.ts +6 -0
- package/dist/talk/index.js +7 -0
- package/dist/talk/rotas.d.ts +235 -0
- package/dist/talk/rotas.js +386 -0
- package/dist/talk/tipos.d.ts +260 -0
- package/dist/talk/tipos.js +2 -0
- package/package.json +1 -1
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
import type * as tipos from "./tipos.js";
|
|
2
|
+
import type { CredencialDeAcesso } from "../base/credencial.js";
|
|
3
|
+
import { type OpcoesDaChamada } from "../base/requisicao.js";
|
|
4
|
+
/**
|
|
5
|
+
* Parâmetros de consulta e de cabeçalho de `/conversa`.
|
|
6
|
+
*/
|
|
7
|
+
export interface ParametrosDeBuscarPeloFiltroConversa {
|
|
8
|
+
/**
|
|
9
|
+
* Trecho do nome da conversa ou do nome de um participante.
|
|
10
|
+
*/
|
|
11
|
+
busca?: string;
|
|
12
|
+
/**
|
|
13
|
+
* `DIRETA`, `GRUPO` ou `ESPACO`.
|
|
14
|
+
*/
|
|
15
|
+
tipo?: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Parâmetros de consulta e de cabeçalho de `/conversa/explorar`.
|
|
19
|
+
*/
|
|
20
|
+
export interface ParametrosDeExplorarConversa {
|
|
21
|
+
/**
|
|
22
|
+
* Trecho do nome, do e-mail, do setor ou do cargo.
|
|
23
|
+
*/
|
|
24
|
+
busca?: string;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Parâmetros de consulta e de cabeçalho de `/conversa/pessoas`.
|
|
28
|
+
*/
|
|
29
|
+
export interface ParametrosDeBuscarPessoasConversa {
|
|
30
|
+
/**
|
|
31
|
+
* Trecho do nome, do e-mail, do setor ou do cargo.
|
|
32
|
+
*/
|
|
33
|
+
busca?: string;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Parâmetros de consulta e de cabeçalho de `/conversa/{id}/mensagem`.
|
|
37
|
+
*/
|
|
38
|
+
export interface ParametrosDeBuscarPaginadorMensagem {
|
|
39
|
+
/**
|
|
40
|
+
* Traz as mensagens anteriores a esta (rolar para cima). Sem ele, as mais recentes.
|
|
41
|
+
*/
|
|
42
|
+
antes?: string;
|
|
43
|
+
/**
|
|
44
|
+
* Traz as mensagens posteriores a esta (o que chegou depois de uma reconexão).
|
|
45
|
+
*/
|
|
46
|
+
depois?: string;
|
|
47
|
+
/**
|
|
48
|
+
* As respostas da thread desta mensagem principal (a principal vem em `raiz`).
|
|
49
|
+
*/
|
|
50
|
+
thread_id?: string;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Busca o link para baixar um anexo
|
|
54
|
+
*
|
|
55
|
+
* Devolve o anexo com `url_download`, o link assinado do TermoBucket, que vale 15 minutos. Só para quem participa da conversa do anexo (senão `404`).
|
|
56
|
+
*
|
|
57
|
+
* `GET /anexo/{id}`
|
|
58
|
+
*/
|
|
59
|
+
export declare function buscar_pelo_id_anexo(credencial_de_acesso: CredencialDeAcesso, id: string, opcoes_da_chamada?: OpcoesDaChamada): Promise<tipos.AnexoComEndereco>;
|
|
60
|
+
/**
|
|
61
|
+
* Lista as conversas de quem pediu
|
|
62
|
+
*
|
|
63
|
+
* Todas as conversas (diretas, grupos e espaços) de que a pessoa participa: as fixadas primeiro e depois pela última atividade. Cada uma traz a prévia da última mensagem, o estado da pessoa (`eu`), as não lidas (`nao_lidas`, mensagens principais de outras pessoas depois da última lida, até 100) e as menções (`mencoes`). Na direta e no grupo vêm os participantes; no espaço, só o total. `busca` procura no nome da conversa e no nome dos participantes; `tipo` filtra por `DIRETA`, `GRUPO` ou `ESPACO`.
|
|
64
|
+
*
|
|
65
|
+
* `GET /conversa`
|
|
66
|
+
*/
|
|
67
|
+
export declare function buscar_pelo_filtro_conversa(credencial_de_acesso: CredencialDeAcesso, parametros?: ParametrosDeBuscarPeloFiltroConversa, opcoes_da_chamada?: OpcoesDaChamada): Promise<Array<tipos.Conversa>>;
|
|
68
|
+
/**
|
|
69
|
+
* Cria uma conversa
|
|
70
|
+
*
|
|
71
|
+
* Livre para todo colaborador logado; quem cria entra sozinho. `DIRETA`: exatamente uma pessoa em `participante_ids`; se o par já tem conversa, devolve a que existe com `200`. `GRUPO`: uma ou mais pessoas (até 50 no total), `nome` opcional. `ESPACO`: `nome` obrigatório (até 80 caracteres), `descricao` até 1000, `visibilidade` `PUBLICO` (padrão, qualquer colaborador acha em explorar e entra) ou `PRIVADO` (só por convite); quem cria vira gestor. As mensagens chegam em tempo real em `GET /ws?token=<JWT>` (WebSocket com eventos JSON: `mensagem.criada`, `mensagem.atualizada`, `conversa.atualizada`, `conversa.removida`, `conversa.lida`, `digitando`, `presenca` e `presenca.inicial`).
|
|
72
|
+
*
|
|
73
|
+
* `POST /conversa`
|
|
74
|
+
*/
|
|
75
|
+
export declare function criar_conversa(credencial_de_acesso: CredencialDeAcesso, corpo_da_requisicao: tipos.ConversaCriar, opcoes_da_chamada?: OpcoesDaChamada): Promise<tipos.Conversa>;
|
|
76
|
+
/**
|
|
77
|
+
* Lista os espaços públicos para entrar
|
|
78
|
+
*
|
|
79
|
+
* Espaços `PUBLICO` em que a pessoa ainda não está, em ordem alfabética (até 200). `busca` procura no nome e na descrição.
|
|
80
|
+
*
|
|
81
|
+
* `GET /conversa/explorar`
|
|
82
|
+
*/
|
|
83
|
+
export declare function explorar_conversa(credencial_de_acesso: CredencialDeAcesso, parametros?: ParametrosDeExplorarConversa, opcoes_da_chamada?: OpcoesDaChamada): Promise<Array<tipos.EspacoPublico>>;
|
|
84
|
+
/**
|
|
85
|
+
* Busca colaboradores para conversar
|
|
86
|
+
*
|
|
87
|
+
* Colaboradores ativos (até 30), em ordem alfabética, para começar uma conversa ou chamar para um grupo ou espaço. `busca` procura no nome, no e-mail, no setor e no cargo.
|
|
88
|
+
*
|
|
89
|
+
* `GET /conversa/pessoas`
|
|
90
|
+
*/
|
|
91
|
+
export declare function buscar_pessoas_conversa(credencial_de_acesso: CredencialDeAcesso, parametros?: ParametrosDeBuscarPessoasConversa, opcoes_da_chamada?: OpcoesDaChamada): Promise<Array<tipos.ColaboradorPessoa>>;
|
|
92
|
+
/**
|
|
93
|
+
* Mostra um colaborador
|
|
94
|
+
*
|
|
95
|
+
* O cartão da pessoa: nome, e-mail, telefone, setor e cargo. Vale também para quem já saiu da empresa, que continua nas mensagens antigas.
|
|
96
|
+
*
|
|
97
|
+
* `GET /conversa/pessoas/{id}`
|
|
98
|
+
*/
|
|
99
|
+
export declare function buscar_pessoa_conversa(credencial_de_acesso: CredencialDeAcesso, id: string, opcoes_da_chamada?: OpcoesDaChamada): Promise<tipos.ColaboradorPessoa>;
|
|
100
|
+
/**
|
|
101
|
+
* Busca uma conversa pelo id
|
|
102
|
+
*
|
|
103
|
+
* A conversa com todos os participantes (inclusive no espaço), o papel de cada um e o estado de quem pediu.
|
|
104
|
+
*
|
|
105
|
+
* `GET /conversa/{id}`
|
|
106
|
+
*/
|
|
107
|
+
export declare function buscar_pelo_id_conversa(credencial_de_acesso: CredencialDeAcesso, id: string, opcoes_da_chamada?: OpcoesDaChamada): Promise<tipos.Conversa>;
|
|
108
|
+
/**
|
|
109
|
+
* Atualiza o nome, a descrição ou a visibilidade
|
|
110
|
+
*
|
|
111
|
+
* No grupo, qualquer participante muda o `nome`. No espaço, só os gestores mudam `nome`, `descricao` (`null` apaga) e `visibilidade`. A conversa direta não tem nome (`400`).
|
|
112
|
+
*
|
|
113
|
+
* `PATCH /conversa/{id}`
|
|
114
|
+
*/
|
|
115
|
+
export declare function atualizar_pelo_id_conversa(credencial_de_acesso: CredencialDeAcesso, id: string, corpo_da_requisicao: tipos.ConversaAtualizar, opcoes_da_chamada?: OpcoesDaChamada): Promise<tipos.Conversa>;
|
|
116
|
+
/**
|
|
117
|
+
* Exclui o espaço ou o grupo
|
|
118
|
+
*
|
|
119
|
+
* O espaço, só os gestores; o grupo, só quem criou. A conversa direta não se exclui (`400`). Todos os participantes recebem `conversa.removida`.
|
|
120
|
+
*
|
|
121
|
+
* `DELETE /conversa/{id}`
|
|
122
|
+
*/
|
|
123
|
+
export declare function deletar_pelo_id_conversa(credencial_de_acesso: CredencialDeAcesso, id: string, opcoes_da_chamada?: OpcoesDaChamada): Promise<void>;
|
|
124
|
+
/**
|
|
125
|
+
* Envia um arquivo para uma mensagem
|
|
126
|
+
*
|
|
127
|
+
* Quem participa da conversa envia o arquivo (`conteudo` em base64, até 20 MB; `nome` com a extensão e `tipo` MIME). O arquivo vai direto ao TermoBucket como arquivo privado e nunca fica no banco; se o bucket falhar, responde `503`. O `id` devolvido vai em `anexo_ids` do `POST /conversa/{id}/mensagem` (até 10 por mensagem; o texto pode ficar vazio). Os tipos aceitos são os liberados no cadastro do app no TermoBucket.
|
|
128
|
+
*
|
|
129
|
+
* `POST /conversa/{id}/anexo`
|
|
130
|
+
*/
|
|
131
|
+
export declare function enviar_anexo(credencial_de_acesso: CredencialDeAcesso, id: string, corpo_da_requisicao: tipos.AnexoEnviar, opcoes_da_chamada?: OpcoesDaChamada): Promise<tipos.Anexo>;
|
|
132
|
+
/**
|
|
133
|
+
* Entra num espaço público
|
|
134
|
+
*
|
|
135
|
+
* A pessoa entra como membro. Espaço privado ou outra conversa responde `404`. Repetir não muda nada.
|
|
136
|
+
*
|
|
137
|
+
* `POST /conversa/{id}/entrar`
|
|
138
|
+
*/
|
|
139
|
+
export declare function entrar_conversa(credencial_de_acesso: CredencialDeAcesso, id: string, opcoes_da_chamada?: OpcoesDaChamada): Promise<tipos.Conversa>;
|
|
140
|
+
/**
|
|
141
|
+
* Marca a conversa como lida
|
|
142
|
+
*
|
|
143
|
+
* Marca como lida até `mensagem_id`; a leitura nunca volta para trás. As outras abas da pessoa recebem `conversa.lida`.
|
|
144
|
+
*
|
|
145
|
+
* `POST /conversa/{id}/lida`
|
|
146
|
+
*/
|
|
147
|
+
export declare function marcar_lida_conversa(credencial_de_acesso: CredencialDeAcesso, id: string, corpo_da_requisicao: tipos.LeituraMarcar, opcoes_da_chamada?: OpcoesDaChamada): Promise<tipos.MeuEstado>;
|
|
148
|
+
/**
|
|
149
|
+
* Lista o histórico da conversa
|
|
150
|
+
*
|
|
151
|
+
* 50 mensagens por página, da mais antiga para a mais recente. Sem parâmetro, as últimas; `antes` traz as anteriores a uma mensagem (`tem_mais` diz se há mais); `depois` traz as que chegaram depois de uma (reconexão). Sem `thread_id`, só as mensagens principais (cada uma com `respostas`); com `thread_id`, as respostas daquela thread e a principal em `raiz`.
|
|
152
|
+
*
|
|
153
|
+
* `GET /conversa/{id}/mensagem`
|
|
154
|
+
*/
|
|
155
|
+
export declare function buscar_paginador_mensagem(credencial_de_acesso: CredencialDeAcesso, id: string, parametros?: ParametrosDeBuscarPaginadorMensagem, opcoes_da_chamada?: OpcoesDaChamada): Promise<tipos.PaginaDeMensagens>;
|
|
156
|
+
/**
|
|
157
|
+
* Envia uma mensagem
|
|
158
|
+
*
|
|
159
|
+
* `texto` obrigatório (até 10000 caracteres, com `*negrito*`, `_itálico_`, `~riscado~` e `` `código` ``). `thread_id` responde na thread de uma mensagem principal. `anexo_ids` liga arquivos já enviados em `POST /conversa/{id}/anexo` (até 10; com anexos o texto pode ficar vazio). `mencoes` são os ids citados com `@nome` (quem não está na conversa fica de fora) e `mencao_todos` cita `@todos`. Quem está conectado recebe `mensagem.criada` na hora (e, na resposta de thread, `mensagem.atualizada` com a principal).
|
|
160
|
+
*
|
|
161
|
+
* `POST /conversa/{id}/mensagem`
|
|
162
|
+
*/
|
|
163
|
+
export declare function criar_mensagem(credencial_de_acesso: CredencialDeAcesso, id: string, corpo_da_requisicao: tipos.MensagemCriar, opcoes_da_chamada?: OpcoesDaChamada): Promise<tipos.Mensagem>;
|
|
164
|
+
/**
|
|
165
|
+
* Chama pessoas para o grupo ou o espaço
|
|
166
|
+
*
|
|
167
|
+
* Qualquer participante chama; quem já está continua como estava. A conversa direta não ganha pessoas (`400`): crie um grupo. O grupo vai até 50 pessoas.
|
|
168
|
+
*
|
|
169
|
+
* `POST /conversa/{id}/participante`
|
|
170
|
+
*/
|
|
171
|
+
export declare function adicionar_participantes_conversa(credencial_de_acesso: CredencialDeAcesso, id: string, corpo_da_requisicao: tipos.ParticipantesAdicionar, opcoes_da_chamada?: OpcoesDaChamada): Promise<tipos.Conversa>;
|
|
172
|
+
/**
|
|
173
|
+
* Muda o papel de alguém no espaço
|
|
174
|
+
*
|
|
175
|
+
* Só os gestores, só no espaço. `papel` é `GESTOR` ou `MEMBRO`; o espaço nunca fica sem gestor (`400`).
|
|
176
|
+
*
|
|
177
|
+
* `PATCH /conversa/{id}/participante/{colaborador_id}`
|
|
178
|
+
*/
|
|
179
|
+
export declare function atualizar_participante_conversa(credencial_de_acesso: CredencialDeAcesso, id: string, colaborador_id: string, corpo_da_requisicao: tipos.ParticipanteAtualizar, opcoes_da_chamada?: OpcoesDaChamada): Promise<tipos.Conversa>;
|
|
180
|
+
/**
|
|
181
|
+
* Tira alguém do grupo ou do espaço
|
|
182
|
+
*
|
|
183
|
+
* No grupo, qualquer participante; no espaço, só os gestores. Para sair, use `/sair`. A pessoa tirada recebe `conversa.removida`.
|
|
184
|
+
*
|
|
185
|
+
* `DELETE /conversa/{id}/participante/{colaborador_id}`
|
|
186
|
+
*/
|
|
187
|
+
export declare function remover_participante_conversa(credencial_de_acesso: CredencialDeAcesso, id: string, colaborador_id: string, opcoes_da_chamada?: OpcoesDaChamada): Promise<void>;
|
|
188
|
+
/**
|
|
189
|
+
* Silencia ou fixa a conversa
|
|
190
|
+
*
|
|
191
|
+
* Só para quem pediu: `silenciado` (sem notificação, a não ser que citem a pessoa) e `fixado` (fica em cima na lista).
|
|
192
|
+
*
|
|
193
|
+
* `PATCH /conversa/{id}/preferencias`
|
|
194
|
+
*/
|
|
195
|
+
export declare function atualizar_preferencias_conversa(credencial_de_acesso: CredencialDeAcesso, id: string, corpo_da_requisicao: tipos.PreferenciasAtualizar, opcoes_da_chamada?: OpcoesDaChamada): Promise<tipos.MeuEstado>;
|
|
196
|
+
/**
|
|
197
|
+
* Inicia uma reunião ou uma chamada no TermoMeet
|
|
198
|
+
*
|
|
199
|
+
* Cria no TermoMeet (com o token de quem pediu) uma reunião instantânea com o nome da conversa (ou "Reunião de"/"Chamada de" quem pediu) e manda o link na conversa como mensagem de quem pediu. `tipo` `REUNIAO` (padrão) manda "📹 Reunião no TermoMeet: <link>"; `CHAMADA` manda "📞 <nome> iniciou uma chamada no TermoMeet: <link>" e avisa por push quem não está no app. O corpo pode ir vazio. Quem está conectado recebe `mensagem.criada` na hora. A resposta traz o `codigo` e o `link` da sala para abrir na hora.
|
|
200
|
+
*
|
|
201
|
+
* `POST /conversa/{id}/reuniao`
|
|
202
|
+
*/
|
|
203
|
+
export declare function iniciar_reuniao_mensagem(credencial_de_acesso: CredencialDeAcesso, id: string, corpo_da_requisicao: tipos.ReuniaoIniciar, opcoes_da_chamada?: OpcoesDaChamada): Promise<tipos.ReuniaoIniciada>;
|
|
204
|
+
/**
|
|
205
|
+
* Sai do grupo ou do espaço
|
|
206
|
+
*
|
|
207
|
+
* Da conversa direta não se sai (`400`). Se sair o último gestor do espaço, quem está há mais tempo vira gestor.
|
|
208
|
+
*
|
|
209
|
+
* `POST /conversa/{id}/sair`
|
|
210
|
+
*/
|
|
211
|
+
export declare function sair_conversa(credencial_de_acesso: CredencialDeAcesso, id: string, opcoes_da_chamada?: OpcoesDaChamada): Promise<void>;
|
|
212
|
+
/**
|
|
213
|
+
* Edita uma mensagem
|
|
214
|
+
*
|
|
215
|
+
* Só quem escreveu. Troca o `texto` (e, se vierem, as citações) e marca `editado_em`.
|
|
216
|
+
*
|
|
217
|
+
* `PATCH /mensagem/{id}`
|
|
218
|
+
*/
|
|
219
|
+
export declare function atualizar_pelo_id_mensagem(credencial_de_acesso: CredencialDeAcesso, id: string, corpo_da_requisicao: tipos.MensagemAtualizar, opcoes_da_chamada?: OpcoesDaChamada): Promise<tipos.Mensagem>;
|
|
220
|
+
/**
|
|
221
|
+
* Exclui uma mensagem
|
|
222
|
+
*
|
|
223
|
+
* Quem escreveu, ou um gestor do espaço. A principal com respostas fica no lugar como excluída, sem texto.
|
|
224
|
+
*
|
|
225
|
+
* `DELETE /mensagem/{id}`
|
|
226
|
+
*/
|
|
227
|
+
export declare function deletar_pelo_id_mensagem(credencial_de_acesso: CredencialDeAcesso, id: string, opcoes_da_chamada?: OpcoesDaChamada): Promise<void>;
|
|
228
|
+
/**
|
|
229
|
+
* Reage a uma mensagem
|
|
230
|
+
*
|
|
231
|
+
* Põe a reação de quem pediu com o `emoji`; reagir de novo com o mesmo tira.
|
|
232
|
+
*
|
|
233
|
+
* `POST /mensagem/{id}/reacao`
|
|
234
|
+
*/
|
|
235
|
+
export declare function reagir_mensagem(credencial_de_acesso: CredencialDeAcesso, id: string, corpo_da_requisicao: tipos.ReacaoAlternar, opcoes_da_chamada?: OpcoesDaChamada): Promise<tipos.Mensagem>;
|
|
@@ -0,0 +1,386 @@
|
|
|
1
|
+
// Gerado pelo gerador do TermoCore (`cargo run -p gerador`). Não edite à mão: a próxima geração sobrescreve.
|
|
2
|
+
import { chamar_servico, codificar_parametro_de_caminho } from "../base/requisicao.js";
|
|
3
|
+
import { TERMO_TALK as SERVICO_DESTA_API } from "../base/servicos.js";
|
|
4
|
+
/**
|
|
5
|
+
* Busca o link para baixar um anexo
|
|
6
|
+
*
|
|
7
|
+
* Devolve o anexo com `url_download`, o link assinado do TermoBucket, que vale 15 minutos. Só para quem participa da conversa do anexo (senão `404`).
|
|
8
|
+
*
|
|
9
|
+
* `GET /anexo/{id}`
|
|
10
|
+
*/
|
|
11
|
+
export function buscar_pelo_id_anexo(credencial_de_acesso, id, opcoes_da_chamada) {
|
|
12
|
+
return chamar_servico({
|
|
13
|
+
servico: SERVICO_DESTA_API,
|
|
14
|
+
metodo_http: "GET",
|
|
15
|
+
caminho_da_rota: `/anexo/${codificar_parametro_de_caminho(id)}`,
|
|
16
|
+
credencial_de_acesso,
|
|
17
|
+
formato_da_resposta: "json",
|
|
18
|
+
}, opcoes_da_chamada);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Lista as conversas de quem pediu
|
|
22
|
+
*
|
|
23
|
+
* Todas as conversas (diretas, grupos e espaços) de que a pessoa participa: as fixadas primeiro e depois pela última atividade. Cada uma traz a prévia da última mensagem, o estado da pessoa (`eu`), as não lidas (`nao_lidas`, mensagens principais de outras pessoas depois da última lida, até 100) e as menções (`mencoes`). Na direta e no grupo vêm os participantes; no espaço, só o total. `busca` procura no nome da conversa e no nome dos participantes; `tipo` filtra por `DIRETA`, `GRUPO` ou `ESPACO`.
|
|
24
|
+
*
|
|
25
|
+
* `GET /conversa`
|
|
26
|
+
*/
|
|
27
|
+
export function buscar_pelo_filtro_conversa(credencial_de_acesso, parametros = {}, opcoes_da_chamada) {
|
|
28
|
+
return chamar_servico({
|
|
29
|
+
servico: SERVICO_DESTA_API,
|
|
30
|
+
metodo_http: "GET",
|
|
31
|
+
caminho_da_rota: "/conversa",
|
|
32
|
+
credencial_de_acesso,
|
|
33
|
+
parametros_de_consulta: parametros,
|
|
34
|
+
formato_da_resposta: "json",
|
|
35
|
+
}, opcoes_da_chamada);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Cria uma conversa
|
|
39
|
+
*
|
|
40
|
+
* Livre para todo colaborador logado; quem cria entra sozinho. `DIRETA`: exatamente uma pessoa em `participante_ids`; se o par já tem conversa, devolve a que existe com `200`. `GRUPO`: uma ou mais pessoas (até 50 no total), `nome` opcional. `ESPACO`: `nome` obrigatório (até 80 caracteres), `descricao` até 1000, `visibilidade` `PUBLICO` (padrão, qualquer colaborador acha em explorar e entra) ou `PRIVADO` (só por convite); quem cria vira gestor. As mensagens chegam em tempo real em `GET /ws?token=<JWT>` (WebSocket com eventos JSON: `mensagem.criada`, `mensagem.atualizada`, `conversa.atualizada`, `conversa.removida`, `conversa.lida`, `digitando`, `presenca` e `presenca.inicial`).
|
|
41
|
+
*
|
|
42
|
+
* `POST /conversa`
|
|
43
|
+
*/
|
|
44
|
+
export function criar_conversa(credencial_de_acesso, corpo_da_requisicao, opcoes_da_chamada) {
|
|
45
|
+
return chamar_servico({
|
|
46
|
+
servico: SERVICO_DESTA_API,
|
|
47
|
+
metodo_http: "POST",
|
|
48
|
+
caminho_da_rota: "/conversa",
|
|
49
|
+
credencial_de_acesso,
|
|
50
|
+
corpo_json: corpo_da_requisicao,
|
|
51
|
+
formato_da_resposta: "json",
|
|
52
|
+
}, opcoes_da_chamada);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Lista os espaços públicos para entrar
|
|
56
|
+
*
|
|
57
|
+
* Espaços `PUBLICO` em que a pessoa ainda não está, em ordem alfabética (até 200). `busca` procura no nome e na descrição.
|
|
58
|
+
*
|
|
59
|
+
* `GET /conversa/explorar`
|
|
60
|
+
*/
|
|
61
|
+
export function explorar_conversa(credencial_de_acesso, parametros = {}, opcoes_da_chamada) {
|
|
62
|
+
return chamar_servico({
|
|
63
|
+
servico: SERVICO_DESTA_API,
|
|
64
|
+
metodo_http: "GET",
|
|
65
|
+
caminho_da_rota: "/conversa/explorar",
|
|
66
|
+
credencial_de_acesso,
|
|
67
|
+
parametros_de_consulta: parametros,
|
|
68
|
+
formato_da_resposta: "json",
|
|
69
|
+
}, opcoes_da_chamada);
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Busca colaboradores para conversar
|
|
73
|
+
*
|
|
74
|
+
* Colaboradores ativos (até 30), em ordem alfabética, para começar uma conversa ou chamar para um grupo ou espaço. `busca` procura no nome, no e-mail, no setor e no cargo.
|
|
75
|
+
*
|
|
76
|
+
* `GET /conversa/pessoas`
|
|
77
|
+
*/
|
|
78
|
+
export function buscar_pessoas_conversa(credencial_de_acesso, parametros = {}, opcoes_da_chamada) {
|
|
79
|
+
return chamar_servico({
|
|
80
|
+
servico: SERVICO_DESTA_API,
|
|
81
|
+
metodo_http: "GET",
|
|
82
|
+
caminho_da_rota: "/conversa/pessoas",
|
|
83
|
+
credencial_de_acesso,
|
|
84
|
+
parametros_de_consulta: parametros,
|
|
85
|
+
formato_da_resposta: "json",
|
|
86
|
+
}, opcoes_da_chamada);
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Mostra um colaborador
|
|
90
|
+
*
|
|
91
|
+
* O cartão da pessoa: nome, e-mail, telefone, setor e cargo. Vale também para quem já saiu da empresa, que continua nas mensagens antigas.
|
|
92
|
+
*
|
|
93
|
+
* `GET /conversa/pessoas/{id}`
|
|
94
|
+
*/
|
|
95
|
+
export function buscar_pessoa_conversa(credencial_de_acesso, id, opcoes_da_chamada) {
|
|
96
|
+
return chamar_servico({
|
|
97
|
+
servico: SERVICO_DESTA_API,
|
|
98
|
+
metodo_http: "GET",
|
|
99
|
+
caminho_da_rota: `/conversa/pessoas/${codificar_parametro_de_caminho(id)}`,
|
|
100
|
+
credencial_de_acesso,
|
|
101
|
+
formato_da_resposta: "json",
|
|
102
|
+
}, opcoes_da_chamada);
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Busca uma conversa pelo id
|
|
106
|
+
*
|
|
107
|
+
* A conversa com todos os participantes (inclusive no espaço), o papel de cada um e o estado de quem pediu.
|
|
108
|
+
*
|
|
109
|
+
* `GET /conversa/{id}`
|
|
110
|
+
*/
|
|
111
|
+
export function buscar_pelo_id_conversa(credencial_de_acesso, id, opcoes_da_chamada) {
|
|
112
|
+
return chamar_servico({
|
|
113
|
+
servico: SERVICO_DESTA_API,
|
|
114
|
+
metodo_http: "GET",
|
|
115
|
+
caminho_da_rota: `/conversa/${codificar_parametro_de_caminho(id)}`,
|
|
116
|
+
credencial_de_acesso,
|
|
117
|
+
formato_da_resposta: "json",
|
|
118
|
+
}, opcoes_da_chamada);
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Atualiza o nome, a descrição ou a visibilidade
|
|
122
|
+
*
|
|
123
|
+
* No grupo, qualquer participante muda o `nome`. No espaço, só os gestores mudam `nome`, `descricao` (`null` apaga) e `visibilidade`. A conversa direta não tem nome (`400`).
|
|
124
|
+
*
|
|
125
|
+
* `PATCH /conversa/{id}`
|
|
126
|
+
*/
|
|
127
|
+
export function atualizar_pelo_id_conversa(credencial_de_acesso, id, corpo_da_requisicao, opcoes_da_chamada) {
|
|
128
|
+
return chamar_servico({
|
|
129
|
+
servico: SERVICO_DESTA_API,
|
|
130
|
+
metodo_http: "PATCH",
|
|
131
|
+
caminho_da_rota: `/conversa/${codificar_parametro_de_caminho(id)}`,
|
|
132
|
+
credencial_de_acesso,
|
|
133
|
+
corpo_json: corpo_da_requisicao,
|
|
134
|
+
formato_da_resposta: "json",
|
|
135
|
+
}, opcoes_da_chamada);
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Exclui o espaço ou o grupo
|
|
139
|
+
*
|
|
140
|
+
* O espaço, só os gestores; o grupo, só quem criou. A conversa direta não se exclui (`400`). Todos os participantes recebem `conversa.removida`.
|
|
141
|
+
*
|
|
142
|
+
* `DELETE /conversa/{id}`
|
|
143
|
+
*/
|
|
144
|
+
export function deletar_pelo_id_conversa(credencial_de_acesso, id, opcoes_da_chamada) {
|
|
145
|
+
return chamar_servico({
|
|
146
|
+
servico: SERVICO_DESTA_API,
|
|
147
|
+
metodo_http: "DELETE",
|
|
148
|
+
caminho_da_rota: `/conversa/${codificar_parametro_de_caminho(id)}`,
|
|
149
|
+
credencial_de_acesso,
|
|
150
|
+
formato_da_resposta: "sem_conteudo",
|
|
151
|
+
}, opcoes_da_chamada);
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Envia um arquivo para uma mensagem
|
|
155
|
+
*
|
|
156
|
+
* Quem participa da conversa envia o arquivo (`conteudo` em base64, até 20 MB; `nome` com a extensão e `tipo` MIME). O arquivo vai direto ao TermoBucket como arquivo privado e nunca fica no banco; se o bucket falhar, responde `503`. O `id` devolvido vai em `anexo_ids` do `POST /conversa/{id}/mensagem` (até 10 por mensagem; o texto pode ficar vazio). Os tipos aceitos são os liberados no cadastro do app no TermoBucket.
|
|
157
|
+
*
|
|
158
|
+
* `POST /conversa/{id}/anexo`
|
|
159
|
+
*/
|
|
160
|
+
export function enviar_anexo(credencial_de_acesso, id, corpo_da_requisicao, opcoes_da_chamada) {
|
|
161
|
+
return chamar_servico({
|
|
162
|
+
servico: SERVICO_DESTA_API,
|
|
163
|
+
metodo_http: "POST",
|
|
164
|
+
caminho_da_rota: `/conversa/${codificar_parametro_de_caminho(id)}/anexo`,
|
|
165
|
+
credencial_de_acesso,
|
|
166
|
+
corpo_json: corpo_da_requisicao,
|
|
167
|
+
formato_da_resposta: "json",
|
|
168
|
+
}, opcoes_da_chamada);
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Entra num espaço público
|
|
172
|
+
*
|
|
173
|
+
* A pessoa entra como membro. Espaço privado ou outra conversa responde `404`. Repetir não muda nada.
|
|
174
|
+
*
|
|
175
|
+
* `POST /conversa/{id}/entrar`
|
|
176
|
+
*/
|
|
177
|
+
export function entrar_conversa(credencial_de_acesso, id, opcoes_da_chamada) {
|
|
178
|
+
return chamar_servico({
|
|
179
|
+
servico: SERVICO_DESTA_API,
|
|
180
|
+
metodo_http: "POST",
|
|
181
|
+
caminho_da_rota: `/conversa/${codificar_parametro_de_caminho(id)}/entrar`,
|
|
182
|
+
credencial_de_acesso,
|
|
183
|
+
formato_da_resposta: "json",
|
|
184
|
+
}, opcoes_da_chamada);
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Marca a conversa como lida
|
|
188
|
+
*
|
|
189
|
+
* Marca como lida até `mensagem_id`; a leitura nunca volta para trás. As outras abas da pessoa recebem `conversa.lida`.
|
|
190
|
+
*
|
|
191
|
+
* `POST /conversa/{id}/lida`
|
|
192
|
+
*/
|
|
193
|
+
export function marcar_lida_conversa(credencial_de_acesso, id, corpo_da_requisicao, opcoes_da_chamada) {
|
|
194
|
+
return chamar_servico({
|
|
195
|
+
servico: SERVICO_DESTA_API,
|
|
196
|
+
metodo_http: "POST",
|
|
197
|
+
caminho_da_rota: `/conversa/${codificar_parametro_de_caminho(id)}/lida`,
|
|
198
|
+
credencial_de_acesso,
|
|
199
|
+
corpo_json: corpo_da_requisicao,
|
|
200
|
+
formato_da_resposta: "json",
|
|
201
|
+
}, opcoes_da_chamada);
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Lista o histórico da conversa
|
|
205
|
+
*
|
|
206
|
+
* 50 mensagens por página, da mais antiga para a mais recente. Sem parâmetro, as últimas; `antes` traz as anteriores a uma mensagem (`tem_mais` diz se há mais); `depois` traz as que chegaram depois de uma (reconexão). Sem `thread_id`, só as mensagens principais (cada uma com `respostas`); com `thread_id`, as respostas daquela thread e a principal em `raiz`.
|
|
207
|
+
*
|
|
208
|
+
* `GET /conversa/{id}/mensagem`
|
|
209
|
+
*/
|
|
210
|
+
export function buscar_paginador_mensagem(credencial_de_acesso, id, parametros = {}, opcoes_da_chamada) {
|
|
211
|
+
return chamar_servico({
|
|
212
|
+
servico: SERVICO_DESTA_API,
|
|
213
|
+
metodo_http: "GET",
|
|
214
|
+
caminho_da_rota: `/conversa/${codificar_parametro_de_caminho(id)}/mensagem`,
|
|
215
|
+
credencial_de_acesso,
|
|
216
|
+
parametros_de_consulta: parametros,
|
|
217
|
+
formato_da_resposta: "json",
|
|
218
|
+
}, opcoes_da_chamada);
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Envia uma mensagem
|
|
222
|
+
*
|
|
223
|
+
* `texto` obrigatório (até 10000 caracteres, com `*negrito*`, `_itálico_`, `~riscado~` e `` `código` ``). `thread_id` responde na thread de uma mensagem principal. `anexo_ids` liga arquivos já enviados em `POST /conversa/{id}/anexo` (até 10; com anexos o texto pode ficar vazio). `mencoes` são os ids citados com `@nome` (quem não está na conversa fica de fora) e `mencao_todos` cita `@todos`. Quem está conectado recebe `mensagem.criada` na hora (e, na resposta de thread, `mensagem.atualizada` com a principal).
|
|
224
|
+
*
|
|
225
|
+
* `POST /conversa/{id}/mensagem`
|
|
226
|
+
*/
|
|
227
|
+
export function criar_mensagem(credencial_de_acesso, id, corpo_da_requisicao, opcoes_da_chamada) {
|
|
228
|
+
return chamar_servico({
|
|
229
|
+
servico: SERVICO_DESTA_API,
|
|
230
|
+
metodo_http: "POST",
|
|
231
|
+
caminho_da_rota: `/conversa/${codificar_parametro_de_caminho(id)}/mensagem`,
|
|
232
|
+
credencial_de_acesso,
|
|
233
|
+
corpo_json: corpo_da_requisicao,
|
|
234
|
+
formato_da_resposta: "json",
|
|
235
|
+
}, opcoes_da_chamada);
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Chama pessoas para o grupo ou o espaço
|
|
239
|
+
*
|
|
240
|
+
* Qualquer participante chama; quem já está continua como estava. A conversa direta não ganha pessoas (`400`): crie um grupo. O grupo vai até 50 pessoas.
|
|
241
|
+
*
|
|
242
|
+
* `POST /conversa/{id}/participante`
|
|
243
|
+
*/
|
|
244
|
+
export function adicionar_participantes_conversa(credencial_de_acesso, id, corpo_da_requisicao, opcoes_da_chamada) {
|
|
245
|
+
return chamar_servico({
|
|
246
|
+
servico: SERVICO_DESTA_API,
|
|
247
|
+
metodo_http: "POST",
|
|
248
|
+
caminho_da_rota: `/conversa/${codificar_parametro_de_caminho(id)}/participante`,
|
|
249
|
+
credencial_de_acesso,
|
|
250
|
+
corpo_json: corpo_da_requisicao,
|
|
251
|
+
formato_da_resposta: "json",
|
|
252
|
+
}, opcoes_da_chamada);
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Muda o papel de alguém no espaço
|
|
256
|
+
*
|
|
257
|
+
* Só os gestores, só no espaço. `papel` é `GESTOR` ou `MEMBRO`; o espaço nunca fica sem gestor (`400`).
|
|
258
|
+
*
|
|
259
|
+
* `PATCH /conversa/{id}/participante/{colaborador_id}`
|
|
260
|
+
*/
|
|
261
|
+
export function atualizar_participante_conversa(credencial_de_acesso, id, colaborador_id, corpo_da_requisicao, opcoes_da_chamada) {
|
|
262
|
+
return chamar_servico({
|
|
263
|
+
servico: SERVICO_DESTA_API,
|
|
264
|
+
metodo_http: "PATCH",
|
|
265
|
+
caminho_da_rota: `/conversa/${codificar_parametro_de_caminho(id)}/participante/${codificar_parametro_de_caminho(colaborador_id)}`,
|
|
266
|
+
credencial_de_acesso,
|
|
267
|
+
corpo_json: corpo_da_requisicao,
|
|
268
|
+
formato_da_resposta: "json",
|
|
269
|
+
}, opcoes_da_chamada);
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* Tira alguém do grupo ou do espaço
|
|
273
|
+
*
|
|
274
|
+
* No grupo, qualquer participante; no espaço, só os gestores. Para sair, use `/sair`. A pessoa tirada recebe `conversa.removida`.
|
|
275
|
+
*
|
|
276
|
+
* `DELETE /conversa/{id}/participante/{colaborador_id}`
|
|
277
|
+
*/
|
|
278
|
+
export function remover_participante_conversa(credencial_de_acesso, id, colaborador_id, opcoes_da_chamada) {
|
|
279
|
+
return chamar_servico({
|
|
280
|
+
servico: SERVICO_DESTA_API,
|
|
281
|
+
metodo_http: "DELETE",
|
|
282
|
+
caminho_da_rota: `/conversa/${codificar_parametro_de_caminho(id)}/participante/${codificar_parametro_de_caminho(colaborador_id)}`,
|
|
283
|
+
credencial_de_acesso,
|
|
284
|
+
formato_da_resposta: "sem_conteudo",
|
|
285
|
+
}, opcoes_da_chamada);
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Silencia ou fixa a conversa
|
|
289
|
+
*
|
|
290
|
+
* Só para quem pediu: `silenciado` (sem notificação, a não ser que citem a pessoa) e `fixado` (fica em cima na lista).
|
|
291
|
+
*
|
|
292
|
+
* `PATCH /conversa/{id}/preferencias`
|
|
293
|
+
*/
|
|
294
|
+
export function atualizar_preferencias_conversa(credencial_de_acesso, id, corpo_da_requisicao, opcoes_da_chamada) {
|
|
295
|
+
return chamar_servico({
|
|
296
|
+
servico: SERVICO_DESTA_API,
|
|
297
|
+
metodo_http: "PATCH",
|
|
298
|
+
caminho_da_rota: `/conversa/${codificar_parametro_de_caminho(id)}/preferencias`,
|
|
299
|
+
credencial_de_acesso,
|
|
300
|
+
corpo_json: corpo_da_requisicao,
|
|
301
|
+
formato_da_resposta: "json",
|
|
302
|
+
}, opcoes_da_chamada);
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* Inicia uma reunião ou uma chamada no TermoMeet
|
|
306
|
+
*
|
|
307
|
+
* Cria no TermoMeet (com o token de quem pediu) uma reunião instantânea com o nome da conversa (ou "Reunião de"/"Chamada de" quem pediu) e manda o link na conversa como mensagem de quem pediu. `tipo` `REUNIAO` (padrão) manda "📹 Reunião no TermoMeet: <link>"; `CHAMADA` manda "📞 <nome> iniciou uma chamada no TermoMeet: <link>" e avisa por push quem não está no app. O corpo pode ir vazio. Quem está conectado recebe `mensagem.criada` na hora. A resposta traz o `codigo` e o `link` da sala para abrir na hora.
|
|
308
|
+
*
|
|
309
|
+
* `POST /conversa/{id}/reuniao`
|
|
310
|
+
*/
|
|
311
|
+
export function iniciar_reuniao_mensagem(credencial_de_acesso, id, corpo_da_requisicao, opcoes_da_chamada) {
|
|
312
|
+
return chamar_servico({
|
|
313
|
+
servico: SERVICO_DESTA_API,
|
|
314
|
+
metodo_http: "POST",
|
|
315
|
+
caminho_da_rota: `/conversa/${codificar_parametro_de_caminho(id)}/reuniao`,
|
|
316
|
+
credencial_de_acesso,
|
|
317
|
+
corpo_json: corpo_da_requisicao,
|
|
318
|
+
formato_da_resposta: "json",
|
|
319
|
+
}, opcoes_da_chamada);
|
|
320
|
+
}
|
|
321
|
+
/**
|
|
322
|
+
* Sai do grupo ou do espaço
|
|
323
|
+
*
|
|
324
|
+
* Da conversa direta não se sai (`400`). Se sair o último gestor do espaço, quem está há mais tempo vira gestor.
|
|
325
|
+
*
|
|
326
|
+
* `POST /conversa/{id}/sair`
|
|
327
|
+
*/
|
|
328
|
+
export function sair_conversa(credencial_de_acesso, id, opcoes_da_chamada) {
|
|
329
|
+
return chamar_servico({
|
|
330
|
+
servico: SERVICO_DESTA_API,
|
|
331
|
+
metodo_http: "POST",
|
|
332
|
+
caminho_da_rota: `/conversa/${codificar_parametro_de_caminho(id)}/sair`,
|
|
333
|
+
credencial_de_acesso,
|
|
334
|
+
formato_da_resposta: "sem_conteudo",
|
|
335
|
+
}, opcoes_da_chamada);
|
|
336
|
+
}
|
|
337
|
+
/**
|
|
338
|
+
* Edita uma mensagem
|
|
339
|
+
*
|
|
340
|
+
* Só quem escreveu. Troca o `texto` (e, se vierem, as citações) e marca `editado_em`.
|
|
341
|
+
*
|
|
342
|
+
* `PATCH /mensagem/{id}`
|
|
343
|
+
*/
|
|
344
|
+
export function atualizar_pelo_id_mensagem(credencial_de_acesso, id, corpo_da_requisicao, opcoes_da_chamada) {
|
|
345
|
+
return chamar_servico({
|
|
346
|
+
servico: SERVICO_DESTA_API,
|
|
347
|
+
metodo_http: "PATCH",
|
|
348
|
+
caminho_da_rota: `/mensagem/${codificar_parametro_de_caminho(id)}`,
|
|
349
|
+
credencial_de_acesso,
|
|
350
|
+
corpo_json: corpo_da_requisicao,
|
|
351
|
+
formato_da_resposta: "json",
|
|
352
|
+
}, opcoes_da_chamada);
|
|
353
|
+
}
|
|
354
|
+
/**
|
|
355
|
+
* Exclui uma mensagem
|
|
356
|
+
*
|
|
357
|
+
* Quem escreveu, ou um gestor do espaço. A principal com respostas fica no lugar como excluída, sem texto.
|
|
358
|
+
*
|
|
359
|
+
* `DELETE /mensagem/{id}`
|
|
360
|
+
*/
|
|
361
|
+
export function deletar_pelo_id_mensagem(credencial_de_acesso, id, opcoes_da_chamada) {
|
|
362
|
+
return chamar_servico({
|
|
363
|
+
servico: SERVICO_DESTA_API,
|
|
364
|
+
metodo_http: "DELETE",
|
|
365
|
+
caminho_da_rota: `/mensagem/${codificar_parametro_de_caminho(id)}`,
|
|
366
|
+
credencial_de_acesso,
|
|
367
|
+
formato_da_resposta: "sem_conteudo",
|
|
368
|
+
}, opcoes_da_chamada);
|
|
369
|
+
}
|
|
370
|
+
/**
|
|
371
|
+
* Reage a uma mensagem
|
|
372
|
+
*
|
|
373
|
+
* Põe a reação de quem pediu com o `emoji`; reagir de novo com o mesmo tira.
|
|
374
|
+
*
|
|
375
|
+
* `POST /mensagem/{id}/reacao`
|
|
376
|
+
*/
|
|
377
|
+
export function reagir_mensagem(credencial_de_acesso, id, corpo_da_requisicao, opcoes_da_chamada) {
|
|
378
|
+
return chamar_servico({
|
|
379
|
+
servico: SERVICO_DESTA_API,
|
|
380
|
+
metodo_http: "POST",
|
|
381
|
+
caminho_da_rota: `/mensagem/${codificar_parametro_de_caminho(id)}/reacao`,
|
|
382
|
+
credencial_de_acesso,
|
|
383
|
+
corpo_json: corpo_da_requisicao,
|
|
384
|
+
formato_da_resposta: "json",
|
|
385
|
+
}, opcoes_da_chamada);
|
|
386
|
+
}
|