mailcore 0.1.0.alpha.1
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.
- checksums.yaml +7 -0
- data/CHANGELOG.md +15 -0
- data/CONTRIBUTING.md +22 -0
- data/LICENSE +21 -0
- data/README.md +185 -0
- data/SECURITY.md +28 -0
- data/app/controllers/action_mailbox/ingresses/mailcore/inbound_emails_controller.rb +59 -0
- data/docs/cobertura.md +140 -0
- data/docs/integracao-api-interrupcao.json +27 -0
- data/docs/integracao-api.json +48 -0
- data/docs/rails.md +185 -0
- data/docs/ruby-3.3.13-http-padrao.json +22 -0
- data/docs/ruby-3.3.13.json +66 -0
- data/docs/ruby-3.4.12-http-padrao.json +22 -0
- data/docs/ruby-3.4.12.json +66 -0
- data/docs/ruby-4.0.9-http-padrao.json +22 -0
- data/docs/ruby-4.0.9.json +66 -0
- data/docs/sinatra.md +94 -0
- data/docs/verificacao.md +100 -0
- data/exemplos/enviar.rb +14 -0
- data/exemplos/sinatra.rb +65 -0
- data/lib/mailcore/action_mailer.rb +124 -0
- data/lib/mailcore/assinatura.rb +64 -0
- data/lib/mailcore/cliente.rb +27 -0
- data/lib/mailcore/configuracao.rb +30 -0
- data/lib/mailcore/engine.rb +71 -0
- data/lib/mailcore/erros.rb +25 -0
- data/lib/mailcore/limite_ingress.rb +51 -0
- data/lib/mailcore/railtie.rb +16 -0
- data/lib/mailcore/recursos/automacoes.rb +52 -0
- data/lib/mailcore/recursos/base.rb +29 -0
- data/lib/mailcore/recursos/caixas.rb +199 -0
- data/lib/mailcore/recursos/campanhas.rb +72 -0
- data/lib/mailcore/recursos/chaves_api.rb +23 -0
- data/lib/mailcore/recursos/cli.rb +24 -0
- data/lib/mailcore/recursos/contatos.rb +179 -0
- data/lib/mailcore/recursos/dominios.rb +35 -0
- data/lib/mailcore/recursos/emails.rb +54 -0
- data/lib/mailcore/recursos/eventos.rb +31 -0
- data/lib/mailcore/recursos/modelos.rb +106 -0
- data/lib/mailcore/recursos/recebimento.rb +54 -0
- data/lib/mailcore/recursos/webhooks.rb +57 -0
- data/lib/mailcore/resposta.rb +22 -0
- data/lib/mailcore/transporte.rb +284 -0
- data/lib/mailcore/versao.rb +5 -0
- data/lib/mailcore.rb +36 -0
- metadata +189 -0
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Mailcore
|
|
4
|
+
module Recursos
|
|
5
|
+
class EmailsCaixa < Base
|
|
6
|
+
def listar(caixa_id, conversa_id, filtros = {}, **opcoes)
|
|
7
|
+
executar(
|
|
8
|
+
'GET',
|
|
9
|
+
"/inboxes/#{segmento(caixa_id)}/threads/#{segmento(conversa_id)}/emails",
|
|
10
|
+
consulta: filtros,
|
|
11
|
+
**opcoes,
|
|
12
|
+
)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def obter(caixa_id, conversa_id, email_id, **opcoes)
|
|
16
|
+
executar(
|
|
17
|
+
'GET',
|
|
18
|
+
"/inboxes/#{segmento(caixa_id)}/threads/#{segmento(conversa_id)}/emails/#{segmento(email_id)}",
|
|
19
|
+
**opcoes,
|
|
20
|
+
)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def responder(caixa_id, conversa_id, email_id, pedido, **opcoes)
|
|
24
|
+
executar(
|
|
25
|
+
'POST',
|
|
26
|
+
"/inboxes/#{segmento(caixa_id)}/threads/#{segmento(conversa_id)}/emails/#{segmento(email_id)}/reply",
|
|
27
|
+
corpo: pedido,
|
|
28
|
+
**opcoes,
|
|
29
|
+
)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def encaminhar(caixa_id, conversa_id, email_id, pedido, **opcoes)
|
|
33
|
+
executar(
|
|
34
|
+
'POST',
|
|
35
|
+
"/inboxes/#{segmento(caixa_id)}/threads/#{segmento(conversa_id)}/emails/#{segmento(email_id)}/forward",
|
|
36
|
+
corpo: pedido,
|
|
37
|
+
**opcoes,
|
|
38
|
+
)
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
class EtiquetasConversaCaixa < Base
|
|
43
|
+
def adicionar(caixa_id, conversa_id, ids, **opcoes)
|
|
44
|
+
executar(
|
|
45
|
+
'POST',
|
|
46
|
+
"/inboxes/#{segmento(caixa_id)}/threads/#{segmento(conversa_id)}/labels",
|
|
47
|
+
corpo: { ids: ids },
|
|
48
|
+
**opcoes,
|
|
49
|
+
)
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def substituir(caixa_id, conversa_id, ids, **opcoes)
|
|
53
|
+
executar(
|
|
54
|
+
'PUT',
|
|
55
|
+
"/inboxes/#{segmento(caixa_id)}/threads/#{segmento(conversa_id)}/labels",
|
|
56
|
+
corpo: { ids: ids },
|
|
57
|
+
**opcoes,
|
|
58
|
+
)
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
def remover(caixa_id, conversa_id, etiqueta_id, **opcoes)
|
|
62
|
+
executar(
|
|
63
|
+
'DELETE',
|
|
64
|
+
"/inboxes/#{segmento(caixa_id)}/threads/#{segmento(conversa_id)}/labels/#{segmento(etiqueta_id)}",
|
|
65
|
+
**opcoes,
|
|
66
|
+
)
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
class ConversasCaixa < Base
|
|
71
|
+
attr_reader :emails, :etiquetas
|
|
72
|
+
|
|
73
|
+
def initialize(transporte)
|
|
74
|
+
super(transporte)
|
|
75
|
+
@emails = EmailsCaixa.new(transporte)
|
|
76
|
+
@etiquetas = EtiquetasConversaCaixa.new(transporte)
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
def listar(caixa_id, filtros = {}, **opcoes)
|
|
80
|
+
executar('GET', "/inboxes/#{segmento(caixa_id)}/threads", consulta: filtros, **opcoes)
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
def buscar(caixa_id, filtros = {}, **opcoes)
|
|
84
|
+
executar('GET', "/inboxes/#{segmento(caixa_id)}/threads/search", consulta: filtros, **opcoes)
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
def obter(caixa_id, conversa_id, **opcoes)
|
|
88
|
+
executar('GET', "/inboxes/#{segmento(caixa_id)}/threads/#{segmento(conversa_id)}", **opcoes)
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
def atualizar(caixa_id, conversa_id, pedido, **opcoes)
|
|
92
|
+
executar(
|
|
93
|
+
'PATCH',
|
|
94
|
+
"/inboxes/#{segmento(caixa_id)}/threads/#{segmento(conversa_id)}",
|
|
95
|
+
corpo: pedido,
|
|
96
|
+
**opcoes,
|
|
97
|
+
)
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
def remover(caixa_id, conversa_id, **opcoes)
|
|
101
|
+
executar('DELETE', "/inboxes/#{segmento(caixa_id)}/threads/#{segmento(conversa_id)}", **opcoes)
|
|
102
|
+
end
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
class EtiquetasCaixa < Base
|
|
106
|
+
def listar(caixa_id, **opcoes)
|
|
107
|
+
executar('GET', "/inboxes/#{segmento(caixa_id)}/labels", **opcoes)
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
def obter(caixa_id, etiqueta_id, **opcoes)
|
|
111
|
+
executar('GET', "/inboxes/#{segmento(caixa_id)}/labels/#{segmento(etiqueta_id)}", **opcoes)
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
def criar(caixa_id, pedido, **opcoes)
|
|
115
|
+
executar('POST', "/inboxes/#{segmento(caixa_id)}/labels", corpo: pedido, **opcoes)
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
def atualizar(caixa_id, etiqueta_id, pedido, **opcoes)
|
|
119
|
+
executar(
|
|
120
|
+
'PATCH',
|
|
121
|
+
"/inboxes/#{segmento(caixa_id)}/labels/#{segmento(etiqueta_id)}",
|
|
122
|
+
corpo: pedido,
|
|
123
|
+
**opcoes,
|
|
124
|
+
)
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
def remover(caixa_id, etiqueta_id, **opcoes)
|
|
128
|
+
executar('DELETE', "/inboxes/#{segmento(caixa_id)}/labels/#{segmento(etiqueta_id)}", **opcoes)
|
|
129
|
+
end
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
class RascunhosCaixa < Base
|
|
133
|
+
def listar(caixa_id, filtros = {}, **opcoes)
|
|
134
|
+
executar('GET', "/inboxes/#{segmento(caixa_id)}/drafts", consulta: filtros, **opcoes)
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
def obter(caixa_id, rascunho_id, **opcoes)
|
|
138
|
+
executar('GET', "/inboxes/#{segmento(caixa_id)}/drafts/#{segmento(rascunho_id)}", **opcoes)
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
def criar(caixa_id, pedido = {}, **opcoes)
|
|
142
|
+
executar('POST', "/inboxes/#{segmento(caixa_id)}/drafts", corpo: pedido, **opcoes)
|
|
143
|
+
end
|
|
144
|
+
|
|
145
|
+
def atualizar(caixa_id, rascunho_id, pedido, **opcoes)
|
|
146
|
+
executar(
|
|
147
|
+
'PATCH',
|
|
148
|
+
"/inboxes/#{segmento(caixa_id)}/drafts/#{segmento(rascunho_id)}",
|
|
149
|
+
corpo: pedido,
|
|
150
|
+
**opcoes,
|
|
151
|
+
)
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
def remover(caixa_id, rascunho_id, **opcoes)
|
|
155
|
+
executar('DELETE', "/inboxes/#{segmento(caixa_id)}/drafts/#{segmento(rascunho_id)}", **opcoes)
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
def enviar(caixa_id, rascunho_id, pedido, **opcoes)
|
|
159
|
+
executar(
|
|
160
|
+
'POST',
|
|
161
|
+
"/inboxes/#{segmento(caixa_id)}/drafts/#{segmento(rascunho_id)}/send",
|
|
162
|
+
corpo: pedido,
|
|
163
|
+
**opcoes,
|
|
164
|
+
)
|
|
165
|
+
end
|
|
166
|
+
end
|
|
167
|
+
|
|
168
|
+
class Caixas < Base
|
|
169
|
+
attr_reader :conversas, :etiquetas, :rascunhos
|
|
170
|
+
|
|
171
|
+
def initialize(transporte)
|
|
172
|
+
super(transporte)
|
|
173
|
+
@conversas = ConversasCaixa.new(transporte)
|
|
174
|
+
@etiquetas = EtiquetasCaixa.new(transporte)
|
|
175
|
+
@rascunhos = RascunhosCaixa.new(transporte)
|
|
176
|
+
end
|
|
177
|
+
|
|
178
|
+
def criar(pedido, **opcoes)
|
|
179
|
+
executar('POST', "/inboxes", corpo: pedido, **opcoes)
|
|
180
|
+
end
|
|
181
|
+
|
|
182
|
+
def listar(filtros = {}, **opcoes)
|
|
183
|
+
executar('GET', "/inboxes", consulta: filtros, **opcoes)
|
|
184
|
+
end
|
|
185
|
+
|
|
186
|
+
def obter(id, **opcoes)
|
|
187
|
+
executar('GET', "/inboxes/#{segmento(id)}", **opcoes)
|
|
188
|
+
end
|
|
189
|
+
|
|
190
|
+
def atualizar(id, pedido, **opcoes)
|
|
191
|
+
executar('PATCH', "/inboxes/#{segmento(id)}", corpo: pedido, **opcoes)
|
|
192
|
+
end
|
|
193
|
+
|
|
194
|
+
def remover(id, **opcoes)
|
|
195
|
+
executar('DELETE', "/inboxes/#{segmento(id)}", **opcoes)
|
|
196
|
+
end
|
|
197
|
+
end
|
|
198
|
+
end
|
|
199
|
+
end
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Mailcore
|
|
4
|
+
module Recursos
|
|
5
|
+
class Campanhas < Base
|
|
6
|
+
def criar(pedido, **opcoes)
|
|
7
|
+
executar('POST', "/broadcasts", corpo: pedido, **opcoes)
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def listar(filtros = {}, **opcoes)
|
|
11
|
+
executar('GET', "/broadcasts", consulta: filtros, **opcoes)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def obter(id, **opcoes)
|
|
15
|
+
executar('GET', "/broadcasts/#{segmento(id)}", **opcoes)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def atualizar(id, pedido, **opcoes)
|
|
19
|
+
executar('PATCH', "/broadcasts/#{segmento(id)}", corpo: pedido, **opcoes)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def remover(id, **opcoes)
|
|
23
|
+
executar('DELETE', "/broadcasts/#{segmento(id)}", **opcoes)
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def duplicar(id, pedido = {}, **opcoes)
|
|
27
|
+
executar('POST', "/broadcasts/#{segmento(id)}/duplicate", corpo: pedido, **opcoes)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def revisar(id, pedido, **opcoes)
|
|
31
|
+
executar('POST', "/broadcasts/#{segmento(id)}/review", corpo: pedido, **opcoes)
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def enviar(id, pedido, **opcoes)
|
|
35
|
+
executar('POST', "/broadcasts/#{segmento(id)}/send", corpo: pedido, **opcoes)
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def cancelar(id, pedido, **opcoes)
|
|
39
|
+
executar('POST', "/broadcasts/#{segmento(id)}/cancel", corpo: pedido, **opcoes)
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def prever(id, pedido = {}, **opcoes)
|
|
43
|
+
executar('POST', "/broadcasts/#{segmento(id)}/preview", corpo: pedido, **opcoes)
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def testar(id, pedido, **opcoes)
|
|
47
|
+
executar('POST', "/broadcasts/#{segmento(id)}/test", corpo: pedido, **opcoes)
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def ler_previa(organizacao_id, previa_id, **opcoes)
|
|
51
|
+
executar(
|
|
52
|
+
'GET',
|
|
53
|
+
"/broadcast-previews/#{segmento(organizacao_id)}/#{segmento(previa_id)}",
|
|
54
|
+
formato: :texto,
|
|
55
|
+
**opcoes,
|
|
56
|
+
)
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def obter_metricas(id, **opcoes)
|
|
60
|
+
executar('GET', "/broadcasts/#{segmento(id)}/metrics", **opcoes)
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def listar_destinatarios(id, filtros = {}, **opcoes)
|
|
64
|
+
executar('GET', "/broadcasts/#{segmento(id)}/recipients", consulta: filtros, **opcoes)
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
def listar_links_clicados(id, filtros = {}, **opcoes)
|
|
68
|
+
executar('GET', "/broadcasts/#{segmento(id)}/clicked-links", consulta: filtros, **opcoes)
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Mailcore
|
|
4
|
+
module Recursos
|
|
5
|
+
class ChavesApi < Base
|
|
6
|
+
def criar(pedido, **opcoes)
|
|
7
|
+
executar('POST', "/api-keys", corpo: pedido, **opcoes)
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def listar(**opcoes)
|
|
11
|
+
executar('GET', "/api-keys", **opcoes)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def renomear(id, pedido, **opcoes)
|
|
15
|
+
executar('PATCH', "/api-keys/#{segmento(id)}", corpo: pedido, **opcoes)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def revogar(id, **opcoes)
|
|
19
|
+
executar('DELETE', "/api-keys/#{segmento(id)}", **opcoes)
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Mailcore
|
|
4
|
+
module Recursos
|
|
5
|
+
class ConcessoesCli < Base
|
|
6
|
+
def listar(filtros = {}, **opcoes)
|
|
7
|
+
executar('GET', "/cli/oauth/grants", consulta: filtros, **opcoes)
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def revogar(id, **opcoes)
|
|
11
|
+
executar('POST', "/cli/oauth/grants/#{segmento(id)}/revoke", **opcoes)
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
class CliMailcore < Base
|
|
16
|
+
attr_reader :concessoes
|
|
17
|
+
|
|
18
|
+
def initialize(transporte)
|
|
19
|
+
super(transporte)
|
|
20
|
+
@concessoes = ConcessoesCli.new(transporte)
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Mailcore
|
|
4
|
+
module Recursos
|
|
5
|
+
class SegmentosContato < Base
|
|
6
|
+
def listar(contato_id, **opcoes)
|
|
7
|
+
executar('GET', "/contacts/#{segmento(contato_id)}/segments", **opcoes)
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def adicionar(contato_id, segmento_id, **opcoes)
|
|
11
|
+
executar(
|
|
12
|
+
'POST',
|
|
13
|
+
"/contacts/#{segmento(contato_id)}/segments",
|
|
14
|
+
corpo: { segmento_id: segmento_id },
|
|
15
|
+
aceitar_vazio: true,
|
|
16
|
+
**opcoes,
|
|
17
|
+
)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def remover(contato_id, segmento_id, **opcoes)
|
|
21
|
+
executar('DELETE', "/contacts/#{segmento(contato_id)}/segments/#{segmento(segmento_id)}", **opcoes)
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
class TopicosContato < Base
|
|
26
|
+
def listar(contato_id, **opcoes)
|
|
27
|
+
executar('GET', "/contacts/#{segmento(contato_id)}/topics", **opcoes)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def atualizar(contato_id, topicos, **opcoes)
|
|
31
|
+
executar('PATCH', "/contacts/#{segmento(contato_id)}/topics", corpo: { topicos: topicos }, **opcoes)
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
class ImportacoesContatos < Base
|
|
36
|
+
def prever(pedido, **opcoes)
|
|
37
|
+
executar('POST', "/contacts/imports/preview", corpo: pedido, **opcoes)
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def criar(pedido, **opcoes)
|
|
41
|
+
executar('POST', "/contacts/imports", corpo: pedido, **opcoes)
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def obter(id, **opcoes)
|
|
45
|
+
executar('GET', "/contacts/imports/#{segmento(id)}", **opcoes)
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
class ExportacoesContatos < Base
|
|
50
|
+
def criar(filtros = {}, **opcoes)
|
|
51
|
+
executar('POST', "/contacts/exports", corpo: filtros, **opcoes)
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def listar(filtros = {}, **opcoes)
|
|
55
|
+
executar('GET', "/contacts/exports", consulta: filtros, **opcoes)
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
def obter(id, **opcoes)
|
|
59
|
+
executar('GET', "/contacts/exports/#{segmento(id)}", **opcoes)
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
def baixar(id, **opcoes)
|
|
63
|
+
executar('GET', "/contacts/exports/#{segmento(id)}/download", formato: :bytes, **opcoes)
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
def baixar_fluxo(id, **opcoes, &bloco)
|
|
67
|
+
raise ArgumentError, 'Forneça um bloco para consumir o download.' unless bloco
|
|
68
|
+
|
|
69
|
+
executar('GET', "/contacts/exports/#{segmento(id)}/download", formato: :fluxo, **opcoes, &bloco)
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
class Contatos < Base
|
|
74
|
+
attr_reader :segmentos, :topicos, :importacoes, :exportacoes
|
|
75
|
+
|
|
76
|
+
def initialize(transporte)
|
|
77
|
+
super(transporte)
|
|
78
|
+
@segmentos = SegmentosContato.new(transporte)
|
|
79
|
+
@topicos = TopicosContato.new(transporte)
|
|
80
|
+
@importacoes = ImportacoesContatos.new(transporte)
|
|
81
|
+
@exportacoes = ExportacoesContatos.new(transporte)
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
def criar(pedido, **opcoes)
|
|
85
|
+
executar('POST', "/contacts", corpo: pedido, **opcoes)
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
def listar(filtros = {}, **opcoes)
|
|
89
|
+
executar('GET', "/contacts", consulta: filtros, **opcoes)
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
def obter(id, **opcoes)
|
|
93
|
+
executar('GET', "/contacts/#{segmento(id)}", **opcoes)
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
def atualizar(id, pedido, **opcoes)
|
|
97
|
+
executar('PATCH', "/contacts/#{segmento(id)}", corpo: pedido, **opcoes)
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
def remover(id, **opcoes)
|
|
101
|
+
executar('DELETE', "/contacts/#{segmento(id)}", **opcoes)
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
def adicionar_em_lote(pedido, **opcoes)
|
|
105
|
+
executar('POST', "/contacts/batch", corpo: pedido, **opcoes)
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
def alterar_em_lote(pedido, **opcoes)
|
|
109
|
+
executar('POST', "/contacts/bulk", corpo: pedido, **opcoes)
|
|
110
|
+
end
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
class Segmentos < Base
|
|
114
|
+
def criar(pedido, **opcoes)
|
|
115
|
+
executar('POST', "/segments", corpo: pedido, **opcoes)
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
def listar(filtros = {}, **opcoes)
|
|
119
|
+
executar('GET', "/segments", consulta: filtros, **opcoes)
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
def obter(id, **opcoes)
|
|
123
|
+
executar('GET', "/segments/#{segmento(id)}", **opcoes)
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
def atualizar(id, pedido, **opcoes)
|
|
127
|
+
executar('PATCH', "/segments/#{segmento(id)}", corpo: pedido, **opcoes)
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
def remover(id, **opcoes)
|
|
131
|
+
executar('DELETE', "/segments/#{segmento(id)}", **opcoes)
|
|
132
|
+
end
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
class Topicos < Base
|
|
136
|
+
def criar(pedido, **opcoes)
|
|
137
|
+
executar('POST', "/topics", corpo: pedido, **opcoes)
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
def listar(filtros = {}, **opcoes)
|
|
141
|
+
executar('GET', "/topics", consulta: filtros, **opcoes)
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
def obter(id, **opcoes)
|
|
145
|
+
executar('GET', "/topics/#{segmento(id)}", **opcoes)
|
|
146
|
+
end
|
|
147
|
+
|
|
148
|
+
def atualizar(id, pedido, **opcoes)
|
|
149
|
+
executar('PATCH', "/topics/#{segmento(id)}", corpo: pedido, **opcoes)
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
def remover(id, **opcoes)
|
|
153
|
+
executar('DELETE', "/topics/#{segmento(id)}", **opcoes)
|
|
154
|
+
end
|
|
155
|
+
end
|
|
156
|
+
|
|
157
|
+
class PropriedadesContatos < Base
|
|
158
|
+
def criar(pedido, **opcoes)
|
|
159
|
+
executar('POST', "/contact-properties", corpo: pedido, **opcoes)
|
|
160
|
+
end
|
|
161
|
+
|
|
162
|
+
def listar(filtros = {}, **opcoes)
|
|
163
|
+
executar('GET', "/contact-properties", consulta: filtros, **opcoes)
|
|
164
|
+
end
|
|
165
|
+
|
|
166
|
+
def obter(id, **opcoes)
|
|
167
|
+
executar('GET', "/contact-properties/#{segmento(id)}", **opcoes)
|
|
168
|
+
end
|
|
169
|
+
|
|
170
|
+
def atualizar(id, pedido, **opcoes)
|
|
171
|
+
executar('PATCH', "/contact-properties/#{segmento(id)}", corpo: pedido, **opcoes)
|
|
172
|
+
end
|
|
173
|
+
|
|
174
|
+
def remover(id, **opcoes)
|
|
175
|
+
executar('DELETE', "/contact-properties/#{segmento(id)}", **opcoes)
|
|
176
|
+
end
|
|
177
|
+
end
|
|
178
|
+
end
|
|
179
|
+
end
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Mailcore
|
|
4
|
+
module Recursos
|
|
5
|
+
class Dominios < Base
|
|
6
|
+
def criar(pedido, **opcoes)
|
|
7
|
+
executar('POST', "/domains", corpo: pedido, **opcoes)
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def listar(filtros = {}, **opcoes)
|
|
11
|
+
executar('GET', "/domains", consulta: filtros, **opcoes)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def obter(id, **opcoes)
|
|
15
|
+
executar('GET', "/domains/#{segmento(id)}", **opcoes)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def atualizar(id, pedido, **opcoes)
|
|
19
|
+
executar('PATCH', "/domains/#{segmento(id)}", corpo: pedido, **opcoes)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def remover(id, **opcoes)
|
|
23
|
+
executar('DELETE', "/domains/#{segmento(id)}", **opcoes)
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def registros_dns(id, **opcoes)
|
|
27
|
+
executar('GET', "/domains/#{segmento(id)}/dns", **opcoes)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def verificar(id, **opcoes)
|
|
31
|
+
executar('POST', "/domains/#{segmento(id)}/verify", **opcoes)
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Mailcore
|
|
4
|
+
module Recursos
|
|
5
|
+
class Emails < Base
|
|
6
|
+
# A aceitação da intenção não comprova a entrega da mensagem.
|
|
7
|
+
def enviar(pedido, **opcoes)
|
|
8
|
+
executar('POST', "/emails", corpo: pedido, **opcoes)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def listar(filtros = {}, **opcoes)
|
|
12
|
+
executar('GET', "/emails", consulta: filtros, **opcoes)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def obter(id, **opcoes)
|
|
16
|
+
executar('GET', "/emails/#{segmento(id)}", **opcoes)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def reagendar(id, pedido, **opcoes)
|
|
20
|
+
executar('PATCH', "/emails/#{segmento(id)}", corpo: pedido, **opcoes)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def cancelar(id, **opcoes)
|
|
24
|
+
executar('POST', "/emails/#{segmento(id)}/cancel", **opcoes)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def obter_por_idempotencia(chave, **opcoes)
|
|
28
|
+
executar('GET', "/emails/idempotency/#{segmento(chave)}", **opcoes)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def eventos(id, **opcoes)
|
|
32
|
+
executar('GET', "/emails/#{segmento(id)}/events", **opcoes)
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def baixar_anexo(id, indice, **opcoes)
|
|
36
|
+
unless indice.is_a?(Integer) && indice >= 0
|
|
37
|
+
raise ArgumentError, 'Informe um índice de anexo inteiro e não negativo.'
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
executar('GET', "/emails/#{segmento(id)}/attachments/#{indice}", formato: :bytes, **opcoes)
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
class Lotes < Base
|
|
45
|
+
def enviar(pedidos, **opcoes)
|
|
46
|
+
executar('POST', "/emails/batch", corpo: pedidos, **opcoes)
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def obter_por_idempotencia(chave, **opcoes)
|
|
50
|
+
executar('GET', "/emails/batch/idempotency/#{segmento(chave)}", **opcoes)
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Mailcore
|
|
4
|
+
module Recursos
|
|
5
|
+
class Eventos < Base
|
|
6
|
+
def criar(pedido, **opcoes)
|
|
7
|
+
executar('POST', "/events", corpo: pedido, **opcoes)
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def listar(filtros = {}, **opcoes)
|
|
11
|
+
executar('GET', "/events", consulta: filtros, **opcoes)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def obter(id, **opcoes)
|
|
15
|
+
executar('GET', "/events/#{segmento(id)}", **opcoes)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def atualizar(id, pedido, **opcoes)
|
|
19
|
+
executar('PATCH', "/events/#{segmento(id)}", corpo: pedido, **opcoes)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def remover(id, **opcoes)
|
|
23
|
+
executar('DELETE', "/events/#{segmento(id)}", **opcoes)
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def enviar(pedido, **opcoes)
|
|
27
|
+
executar('POST', "/events/send", corpo: pedido, **opcoes)
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|