mailersend-ruby 3.0.1 → 3.4.0

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.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/.envrc +2 -0
  3. data/.github/workflows/main.yml +1 -1
  4. data/.github/workflows/publish_gem.yml +1 -1
  5. data/.gitignore +2 -1
  6. data/CHANGELOG.md +12 -0
  7. data/README.md +534 -0
  8. data/fixtures/dmarc_monitoring/add_favorite.yml +31 -0
  9. data/fixtures/dmarc_monitoring/create.yml +34 -0
  10. data/fixtures/dmarc_monitoring/delete.yml +31 -0
  11. data/fixtures/dmarc_monitoring/list.yml +32 -0
  12. data/fixtures/dmarc_monitoring/remove_favorite.yml +31 -0
  13. data/fixtures/dmarc_monitoring/report.yml +31 -0
  14. data/fixtures/dmarc_monitoring/report_by_ip.yml +31 -0
  15. data/fixtures/dmarc_monitoring/report_sources.yml +31 -0
  16. data/fixtures/dmarc_monitoring/update.yml +34 -0
  17. data/fixtures/email/email_send_template_language.yml +56 -0
  18. data/fixtures/emails/emails_list_emails.yml +35 -0
  19. data/fixtures/emails/emails_list_emails_empty_page.yml +35 -0
  20. data/fixtures/emails/emails_single_email.yml +35 -0
  21. data/fixtures/whatsapp/whatsapp_send.yml +47 -0
  22. data/fixtures/whatsapp/whatsapp_send_multiple_recipients.yml +47 -0
  23. data/fixtures/whatsapp/whatsapp_send_personalization.yml +47 -0
  24. data/fixtures/whatsapp_activities/whatsapp_activities_list.yml +43 -0
  25. data/fixtures/whatsapp_inbound_messages/whatsapp_inbound_messages_get.yml +43 -0
  26. data/fixtures/whatsapp_inbound_messages/whatsapp_inbound_messages_list.yml +43 -0
  27. data/fixtures/whatsapp_items/whatsapp_items_get.yml +43 -0
  28. data/fixtures/whatsapp_items/whatsapp_items_list.yml +43 -0
  29. data/fixtures/whatsapp_messages/whatsapp_messages_get.yml +43 -0
  30. data/fixtures/whatsapp_messages/whatsapp_messages_list.yml +43 -0
  31. data/fixtures/whatsapp_recipient/whatsapp_recipient_get.yml +43 -0
  32. data/fixtures/whatsapp_recipient/whatsapp_recipient_list.yml +43 -0
  33. data/fixtures/whatsapp_templates/whatsapp_templates_get.yml +43 -0
  34. data/fixtures/whatsapp_templates/whatsapp_templates_list.yml +43 -0
  35. data/flake.lock +27 -0
  36. data/flake.nix +25 -0
  37. data/lefthook.yml +14 -0
  38. data/lib/mailersend/dmarc_monitoring/dmarc_monitoring.rb +59 -0
  39. data/lib/mailersend/email/email.rb +10 -0
  40. data/lib/mailersend/emails/emails.rb +44 -0
  41. data/lib/mailersend/version.rb +1 -1
  42. data/lib/mailersend/whatsapp/whatsapp.rb +47 -0
  43. data/lib/mailersend/whatsapp_activities/whatsapp_activities.rb +45 -0
  44. data/lib/mailersend/whatsapp_inbound_messages/whatsapp_inbound_messages.rb +47 -0
  45. data/lib/mailersend/whatsapp_items/whatsapp_items.rb +57 -0
  46. data/lib/mailersend/whatsapp_messages/whatsapp_messages.rb +47 -0
  47. data/lib/mailersend/whatsapp_recipient/whatsapp_recipient.rb +38 -0
  48. data/lib/mailersend/whatsapp_templates/whatsapp_templates.rb +44 -0
  49. data/lib/mailersend.rb +9 -0
  50. data/spec/dmarc_monitoring_rspec.rb +100 -0
  51. data/spec/email_rspec.rb +15 -0
  52. data/spec/emails_rspec.rb +175 -0
  53. data/spec/whatsapp_activities_rspec.rb +38 -0
  54. data/spec/whatsapp_inbound_messages_rspec.rb +49 -0
  55. data/spec/whatsapp_items_rspec.rb +52 -0
  56. data/spec/whatsapp_messages_rspec.rb +50 -0
  57. data/spec/whatsapp_recipient_rspec.rb +40 -0
  58. data/spec/whatsapp_rspec.rb +65 -0
  59. data/spec/whatsapp_templates_rspec.rb +48 -0
  60. metadata +52 -3
@@ -0,0 +1,49 @@
1
+ require 'rspec'
2
+ require 'vcr'
3
+ require 'json'
4
+
5
+ VCR.configure do |config|
6
+ config.cassette_library_dir = './fixtures'
7
+ config.hook_into :webmock
8
+ config.filter_sensitive_data('<AUTH>') do |interaction|
9
+ interaction.request.headers['Authorization'][0]
10
+ end
11
+ end
12
+
13
+ RSpec.describe Mailersend::WhatsAppInboundMessages do
14
+ let(:client) { Mailersend::Client.new(API_TOKEN) }
15
+ let(:whatsapp_inbound_messages) { Mailersend::WhatsAppInboundMessages.new(client) }
16
+
17
+ it 'returns a list of WhatsApp inbound messages' do
18
+ VCR.use_cassette('whatsapp_inbound_messages/whatsapp_inbound_messages_list', match_requests_on: %i[method host path query]) do
19
+ response = whatsapp_inbound_messages.list(
20
+ whatsapp_account_id: '3enl6x27wmrxrl2v',
21
+ from: '48600000001',
22
+ type: %w[text image],
23
+ date_from: 1_790_000_000,
24
+ date_to: 1_790_086_400,
25
+ page: 1,
26
+ limit: 25
27
+ )
28
+ parsed_response = JSON.parse(response.body)
29
+
30
+ expect(response.status).to eq(200)
31
+ expect(parsed_response['data']).to be_an(Array)
32
+ expect(parsed_response['data'][0]['meta']['body']).to eq('Hello, I would like to check my order status.')
33
+ expect(parsed_response['data'][1]).not_to have_key('context')
34
+ expect(parsed_response['links']['last']).to be_nil
35
+ expect(parsed_response['meta']).not_to have_key('total')
36
+ end
37
+ end
38
+
39
+ it 'returns a single WhatsApp inbound message' do
40
+ VCR.use_cassette('whatsapp_inbound_messages/whatsapp_inbound_messages_get') do
41
+ response = whatsapp_inbound_messages.get(whatsapp_inbound_message_id: '62f114a3165fe0d8db0288d1')
42
+ parsed_response = JSON.parse(response.body)
43
+
44
+ expect(response.status).to eq(200)
45
+ expect(parsed_response['data']['meta']['reply_type']).to eq('list_reply')
46
+ expect(parsed_response['data']['context']['message_id']).to start_with('wamid.')
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,52 @@
1
+ require 'rspec'
2
+ require 'vcr'
3
+ require 'json'
4
+
5
+ VCR.configure do |config|
6
+ config.cassette_library_dir = './fixtures'
7
+ config.hook_into :webmock
8
+ config.filter_sensitive_data('<AUTH>') do |interaction|
9
+ interaction.request.headers['Authorization'][0]
10
+ end
11
+ end
12
+
13
+ RSpec.describe Mailersend::WhatsAppItems do
14
+ let(:client) { Mailersend::Client.new(API_TOKEN) }
15
+ let(:whatsapp_items) { Mailersend::WhatsAppItems.new(client) }
16
+
17
+ it 'returns a list of WhatsApp items' do
18
+ VCR.use_cassette('whatsapp_items/whatsapp_items_list', match_requests_on: %i[method host path query]) do
19
+ response = whatsapp_items.list(
20
+ recipient: '48600000002',
21
+ whatsapp_message_id: '67f91abd69f79df391e9d78d',
22
+ status: %w[failed read],
23
+ whatsapp_account_id: '3enl6x27wmrxrl2v',
24
+ from: '15550001234',
25
+ template_id: '23zxk54v6gjy6v7m',
26
+ date_from: 1_791_936_000,
27
+ date_to: 1_792_022_400,
28
+ page: 1,
29
+ limit: 25
30
+ )
31
+ parsed_response = JSON.parse(response.body)
32
+
33
+ expect(response.status).to eq(200)
34
+ expect(parsed_response['data']).to be_an(Array)
35
+ expect(parsed_response['data'][0]['status']).to eq('failed')
36
+ expect(parsed_response['data'][0]['error_code']).to eq(131_026)
37
+ expect(parsed_response['links']['last']).to be_nil
38
+ expect(parsed_response['meta']).not_to have_key('total')
39
+ end
40
+ end
41
+
42
+ it 'returns a single WhatsApp item' do
43
+ VCR.use_cassette('whatsapp_items/whatsapp_items_get') do
44
+ response = whatsapp_items.get(whatsapp_item_id: '67f91abe2202f3705540234a')
45
+ parsed_response = JSON.parse(response.body)
46
+
47
+ expect(response.status).to eq(200)
48
+ expect(parsed_response['data']['recipient']['id']).to eq('67f91abe2202f37055402301')
49
+ expect(parsed_response['data']['activity'].map { |activity| activity['type'] }).to eq(%w[queued sent delivered read])
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,50 @@
1
+ require 'rspec'
2
+ require 'vcr'
3
+ require 'json'
4
+
5
+ VCR.configure do |config|
6
+ config.cassette_library_dir = './fixtures'
7
+ config.hook_into :webmock
8
+ config.filter_sensitive_data('<AUTH>') do |interaction|
9
+ interaction.request.headers['Authorization'][0]
10
+ end
11
+ end
12
+
13
+ RSpec.describe Mailersend::WhatsAppMessages do
14
+ let(:client) { Mailersend::Client.new(API_TOKEN) }
15
+ let(:whatsapp_messages) { Mailersend::WhatsAppMessages.new(client) }
16
+
17
+ it 'returns a list of WhatsApp messages' do
18
+ VCR.use_cassette('whatsapp_messages/whatsapp_messages_list', match_requests_on: %i[method host path query]) do
19
+ response = whatsapp_messages.list(
20
+ whatsapp_account_id: '3enl6x27wmrxrl2v',
21
+ from: '15550001234',
22
+ template_id: '23zxk54v6gjy6v7m',
23
+ date_from: 1_791_936_000,
24
+ date_to: 1_792_022_400,
25
+ page: 1,
26
+ limit: 25
27
+ )
28
+ parsed_response = JSON.parse(response.body)
29
+
30
+ expect(response.status).to eq(200)
31
+ expect(parsed_response['data']).to be_an(Array)
32
+ expect(parsed_response['data'][0]['to']).to eq(%w[48600000001 48600000002])
33
+ expect(parsed_response['data'][0]).not_to have_key('items')
34
+ expect(parsed_response['links']['last']).to be_nil
35
+ expect(parsed_response['meta']).not_to have_key('total')
36
+ expect(parsed_response['meta']).not_to have_key('last_page')
37
+ end
38
+ end
39
+
40
+ it 'returns a single WhatsApp message' do
41
+ VCR.use_cassette('whatsapp_messages/whatsapp_messages_get') do
42
+ response = whatsapp_messages.get(whatsapp_message_id: '67f91abd69f79df391e9d78d')
43
+ parsed_response = JSON.parse(response.body)
44
+
45
+ expect(response.status).to eq(200)
46
+ expect(parsed_response['data']['items']).to be_an(Array)
47
+ expect(parsed_response['data']['items'].map { |item| item['status'] }).to eq(%w[read failed])
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,40 @@
1
+ require 'rspec'
2
+ require 'vcr'
3
+ require 'json'
4
+
5
+ VCR.configure do |config|
6
+ config.cassette_library_dir = './fixtures'
7
+ config.hook_into :webmock
8
+ config.filter_sensitive_data('<AUTH>') do |interaction|
9
+ interaction.request.headers['Authorization'][0]
10
+ end
11
+ end
12
+
13
+ RSpec.describe Mailersend::WhatsAppRecipient do
14
+ let(:client) { Mailersend::Client.new(API_TOKEN) }
15
+ let(:whatsapp_recipient) { Mailersend::WhatsAppRecipient.new(client) }
16
+
17
+ it 'returns a list of WhatsApp recipients' do
18
+ VCR.use_cassette('whatsapp_recipient/whatsapp_recipient_list', match_requests_on: %i[method host path query]) do
19
+ response = whatsapp_recipient.list(status: 'active', phone_number: '48600000001', page: 1, limit: 25)
20
+ parsed_response = JSON.parse(response.body)
21
+
22
+ expect(response.status).to eq(200)
23
+ expect(parsed_response['data']).to be_an(Array)
24
+ expect(parsed_response['data'][0]).not_to have_key('bsuid')
25
+ expect(parsed_response['links']['last']).to be_nil
26
+ expect(parsed_response['meta']).not_to have_key('total')
27
+ end
28
+ end
29
+
30
+ it 'returns a single WhatsApp recipient' do
31
+ VCR.use_cassette('whatsapp_recipient/whatsapp_recipient_get') do
32
+ response = whatsapp_recipient.get(whatsapp_recipient_id: '67f91abe2202f37055402301')
33
+ parsed_response = JSON.parse(response.body)
34
+
35
+ expect(response.status).to eq(200)
36
+ expect(parsed_response['data']['items']).to be_an(Array)
37
+ expect(parsed_response['data']['items'][0]['whatsapp_message_id']).to eq('67f91abd69f79df391e9d78d')
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,65 @@
1
+ require 'rspec'
2
+ require 'vcr'
3
+ require 'json'
4
+
5
+ VCR.configure do |config|
6
+ config.cassette_library_dir = './fixtures'
7
+ config.hook_into :webmock
8
+ config.filter_sensitive_data('<AUTH>') do |interaction|
9
+ interaction.request.headers['Authorization'][0]
10
+ end
11
+ end
12
+
13
+ RSpec.describe Mailersend::WhatsApp do
14
+ let(:client) { Mailersend::Client.new(API_TOKEN) }
15
+ let(:whatsapp) { Mailersend::WhatsApp.new(client) }
16
+
17
+ it 'sends a WhatsApp message' do
18
+ VCR.use_cassette('whatsapp/whatsapp_send') do
19
+ whatsapp.add_from('15550001234')
20
+ whatsapp.add_to('+48600000001')
21
+ whatsapp.add_template_id('23zxk54v6gjy6v7m')
22
+
23
+ response = whatsapp.send
24
+ parsed_response = JSON.parse(response.body)
25
+
26
+ expect(response.status).to eq(202)
27
+ expect(parsed_response['data']['id']).to eq('67f91abd69f79df391e9d78d')
28
+ end
29
+ end
30
+
31
+ it 'includes the personalization in the request body when set' do
32
+ # Cassette is matched on the request body, so this passes only when
33
+ # the serialized payload contains the personalization field.
34
+ VCR.use_cassette('whatsapp/whatsapp_send_personalization', match_requests_on: %i[method uri body]) do
35
+ whatsapp.add_from('15550001234')
36
+ whatsapp.add_to('+48600000001')
37
+ whatsapp.add_template_id('23zxk54v6gjy6v7m')
38
+ whatsapp.add_personalization(
39
+ {
40
+ 'to' => '+48600000001',
41
+ 'data' => {
42
+ 'header' => ['Order #12345'],
43
+ 'body' => ['John', 'December 31, 2026'],
44
+ 'buttons' => ['orders/12345']
45
+ }
46
+ }
47
+ )
48
+
49
+ response = whatsapp.send
50
+ expect(response.status).to eq(202)
51
+ end
52
+ end
53
+
54
+ it 'sends to multiple recipients' do
55
+ VCR.use_cassette('whatsapp/whatsapp_send_multiple_recipients', match_requests_on: %i[method uri body]) do
56
+ whatsapp.add_from('15550001234')
57
+ whatsapp.add_to('+48600000001')
58
+ whatsapp.add_to('+48600000002')
59
+ whatsapp.add_template_id('23zxk54v6gjy6v7m')
60
+
61
+ response = whatsapp.send
62
+ expect(response.status).to eq(202)
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,48 @@
1
+ require 'rspec'
2
+ require 'vcr'
3
+ require 'json'
4
+
5
+ VCR.configure do |config|
6
+ config.cassette_library_dir = './fixtures'
7
+ config.hook_into :webmock
8
+ config.filter_sensitive_data('<AUTH>') do |interaction|
9
+ interaction.request.headers['Authorization'][0]
10
+ end
11
+ end
12
+
13
+ RSpec.describe Mailersend::WhatsAppTemplates do
14
+ let(:client) { Mailersend::Client.new(API_TOKEN) }
15
+ let(:whatsapp_templates) { Mailersend::WhatsAppTemplates.new(client) }
16
+
17
+ it 'returns a list of WhatsApp templates' do
18
+ VCR.use_cassette('whatsapp_templates/whatsapp_templates_list', match_requests_on: %i[method host path query]) do
19
+ response = whatsapp_templates.list(
20
+ whatsapp_account_id: '3enl6x27wmrxrl2v',
21
+ status: 'approved',
22
+ category: 'UTILITY',
23
+ language: 'en_US',
24
+ page: 1,
25
+ limit: 25
26
+ )
27
+ parsed_response = JSON.parse(response.body)
28
+
29
+ expect(response.status).to eq(200)
30
+ expect(parsed_response['data']).to be_an(Array)
31
+ expect(parsed_response['data'][1]['components']['header']).to be_nil
32
+ expect(parsed_response['links']['last']).to be_nil
33
+ expect(parsed_response['meta']).not_to have_key('total')
34
+ end
35
+ end
36
+
37
+ it 'returns a single WhatsApp template' do
38
+ VCR.use_cassette('whatsapp_templates/whatsapp_templates_get') do
39
+ response = whatsapp_templates.get(whatsapp_template_id: '23zxk54v6gjy6v7m')
40
+ parsed_response = JSON.parse(response.body)
41
+
42
+ expect(response.status).to eq(200)
43
+ expect(parsed_response['data']['name']).to eq('order_confirmation')
44
+ expect(parsed_response['data']['components']['header']).to eq({ 'format' => 'TEXT', 'text' => '{{1}}' })
45
+ expect(parsed_response['data']['components']['buttons'][0]['url']).to eq('https://shop.example.com/{{1}}')
46
+ end
47
+ end
48
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mailersend-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.1
4
+ version: 3.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nikola Milojević
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-04-10 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: http
@@ -62,6 +62,7 @@ extensions: []
62
62
  extra_rdoc_files: []
63
63
  files:
64
64
  - ".env.example"
65
+ - ".envrc"
65
66
  - ".github/CODEOWNERS"
66
67
  - ".github/workflows/main.yml"
67
68
  - ".github/workflows/publish_gem.yml"
@@ -79,6 +80,15 @@ files:
79
80
  - fixtures/api_quota/api_quota_get.yml
80
81
  - fixtures/bulk_email/bulk_email_send.yml
81
82
  - fixtures/bulk_email/bulk_email_status.yml
83
+ - fixtures/dmarc_monitoring/add_favorite.yml
84
+ - fixtures/dmarc_monitoring/create.yml
85
+ - fixtures/dmarc_monitoring/delete.yml
86
+ - fixtures/dmarc_monitoring/list.yml
87
+ - fixtures/dmarc_monitoring/remove_favorite.yml
88
+ - fixtures/dmarc_monitoring/report.yml
89
+ - fixtures/dmarc_monitoring/report_by_ip.yml
90
+ - fixtures/dmarc_monitoring/report_sources.yml
91
+ - fixtures/dmarc_monitoring/update.yml
82
92
  - fixtures/domains/domains_add.yml
83
93
  - fixtures/domains/domains_delete.yml
84
94
  - fixtures/domains/domains_dns.yml
@@ -88,6 +98,10 @@ files:
88
98
  - fixtures/domains/domains_single.yml
89
99
  - fixtures/domains/domains_verify.yml
90
100
  - fixtures/email/email_send.yml
101
+ - fixtures/email/email_send_template_language.yml
102
+ - fixtures/emails/emails_list_emails.yml
103
+ - fixtures/emails/emails_list_emails_empty_page.yml
104
+ - fixtures/emails/emails_single_email.yml
91
105
  - fixtures/inbound_routing/inbound_routing_delete.yml
92
106
  - fixtures/inbound_routing/inbound_routing_list.yml
93
107
  - fixtures/inbound_routing/inbound_routing_single.yml
@@ -140,6 +154,23 @@ files:
140
154
  - fixtures/webhooks/webhooks_delete.yml
141
155
  - fixtures/webhooks/webhooks_list.yml
142
156
  - fixtures/webhooks/webhooks_single.yml
157
+ - fixtures/whatsapp/whatsapp_send.yml
158
+ - fixtures/whatsapp/whatsapp_send_multiple_recipients.yml
159
+ - fixtures/whatsapp/whatsapp_send_personalization.yml
160
+ - fixtures/whatsapp_activities/whatsapp_activities_list.yml
161
+ - fixtures/whatsapp_inbound_messages/whatsapp_inbound_messages_get.yml
162
+ - fixtures/whatsapp_inbound_messages/whatsapp_inbound_messages_list.yml
163
+ - fixtures/whatsapp_items/whatsapp_items_get.yml
164
+ - fixtures/whatsapp_items/whatsapp_items_list.yml
165
+ - fixtures/whatsapp_messages/whatsapp_messages_get.yml
166
+ - fixtures/whatsapp_messages/whatsapp_messages_list.yml
167
+ - fixtures/whatsapp_recipient/whatsapp_recipient_get.yml
168
+ - fixtures/whatsapp_recipient/whatsapp_recipient_list.yml
169
+ - fixtures/whatsapp_templates/whatsapp_templates_get.yml
170
+ - fixtures/whatsapp_templates/whatsapp_templates_list.yml
171
+ - flake.lock
172
+ - flake.nix
173
+ - lefthook.yml
143
174
  - lib/mailersend-ruby.rb
144
175
  - lib/mailersend.rb
145
176
  - lib/mailersend/activity/activity.rb
@@ -147,9 +178,11 @@ files:
147
178
  - lib/mailersend/api_quota/api_quota.rb
148
179
  - lib/mailersend/bulk_email/bulk_email.rb
149
180
  - lib/mailersend/client.rb
181
+ - lib/mailersend/dmarc_monitoring/dmarc_monitoring.rb
150
182
  - lib/mailersend/domains/domains.rb
151
183
  - lib/mailersend/email/email.rb
152
184
  - lib/mailersend/email_verification/email_verification.rb
185
+ - lib/mailersend/emails/emails.rb
153
186
  - lib/mailersend/inbound_routing/inbound_routing.rb
154
187
  - lib/mailersend/messages/messages.rb
155
188
  - lib/mailersend/recipients/recipients.rb
@@ -167,13 +200,22 @@ files:
167
200
  - lib/mailersend/tokens/tokens.rb
168
201
  - lib/mailersend/version.rb
169
202
  - lib/mailersend/webhooks/webhooks.rb
203
+ - lib/mailersend/whatsapp/whatsapp.rb
204
+ - lib/mailersend/whatsapp_activities/whatsapp_activities.rb
205
+ - lib/mailersend/whatsapp_inbound_messages/whatsapp_inbound_messages.rb
206
+ - lib/mailersend/whatsapp_items/whatsapp_items.rb
207
+ - lib/mailersend/whatsapp_messages/whatsapp_messages.rb
208
+ - lib/mailersend/whatsapp_recipient/whatsapp_recipient.rb
209
+ - lib/mailersend/whatsapp_templates/whatsapp_templates.rb
170
210
  - mailersend-ruby.gemspec
171
211
  - renovate.json
172
212
  - spec/activity_rspec.rb
173
213
  - spec/api_quota_rspec.rb
174
214
  - spec/bulk_email_rspec.rb
215
+ - spec/dmarc_monitoring_rspec.rb
175
216
  - spec/domains_rspec.rb
176
217
  - spec/email_rspec.rb
218
+ - spec/emails_rspec.rb
177
219
  - spec/inbound_routing_rspec.rb
178
220
  - spec/messages_rspec.rb
179
221
  - spec/recipients_rspec.rb
@@ -189,6 +231,13 @@ files:
189
231
  - spec/templates_rspec.rb
190
232
  - spec/tokens_rspec.rb
191
233
  - spec/webhooks_rspec.rb
234
+ - spec/whatsapp_activities_rspec.rb
235
+ - spec/whatsapp_inbound_messages_rspec.rb
236
+ - spec/whatsapp_items_rspec.rb
237
+ - spec/whatsapp_messages_rspec.rb
238
+ - spec/whatsapp_recipient_rspec.rb
239
+ - spec/whatsapp_rspec.rb
240
+ - spec/whatsapp_templates_rspec.rb
192
241
  homepage: https://www.mailersend.com
193
242
  licenses:
194
243
  - MIT
@@ -212,7 +261,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
212
261
  - !ruby/object:Gem::Version
213
262
  version: '0'
214
263
  requirements: []
215
- rubygems_version: 3.6.2
264
+ rubygems_version: 3.6.9
216
265
  specification_version: 4
217
266
  summary: MailerSend's official Ruby SDK
218
267
  test_files: []