mailersend-ruby 3.1.0 → 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 (49) 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 +9 -0
  7. data/README.md +423 -0
  8. data/fixtures/email/email_send_template_language.yml +56 -0
  9. data/fixtures/emails/emails_list_emails.yml +35 -0
  10. data/fixtures/emails/emails_list_emails_empty_page.yml +35 -0
  11. data/fixtures/emails/emails_single_email.yml +35 -0
  12. data/fixtures/whatsapp/whatsapp_send.yml +47 -0
  13. data/fixtures/whatsapp/whatsapp_send_multiple_recipients.yml +47 -0
  14. data/fixtures/whatsapp/whatsapp_send_personalization.yml +47 -0
  15. data/fixtures/whatsapp_activities/whatsapp_activities_list.yml +43 -0
  16. data/fixtures/whatsapp_inbound_messages/whatsapp_inbound_messages_get.yml +43 -0
  17. data/fixtures/whatsapp_inbound_messages/whatsapp_inbound_messages_list.yml +43 -0
  18. data/fixtures/whatsapp_items/whatsapp_items_get.yml +43 -0
  19. data/fixtures/whatsapp_items/whatsapp_items_list.yml +43 -0
  20. data/fixtures/whatsapp_messages/whatsapp_messages_get.yml +43 -0
  21. data/fixtures/whatsapp_messages/whatsapp_messages_list.yml +43 -0
  22. data/fixtures/whatsapp_recipient/whatsapp_recipient_get.yml +43 -0
  23. data/fixtures/whatsapp_recipient/whatsapp_recipient_list.yml +43 -0
  24. data/fixtures/whatsapp_templates/whatsapp_templates_get.yml +43 -0
  25. data/fixtures/whatsapp_templates/whatsapp_templates_list.yml +43 -0
  26. data/flake.lock +27 -0
  27. data/flake.nix +25 -0
  28. data/lefthook.yml +14 -0
  29. data/lib/mailersend/email/email.rb +10 -0
  30. data/lib/mailersend/emails/emails.rb +44 -0
  31. data/lib/mailersend/version.rb +1 -1
  32. data/lib/mailersend/whatsapp/whatsapp.rb +47 -0
  33. data/lib/mailersend/whatsapp_activities/whatsapp_activities.rb +45 -0
  34. data/lib/mailersend/whatsapp_inbound_messages/whatsapp_inbound_messages.rb +47 -0
  35. data/lib/mailersend/whatsapp_items/whatsapp_items.rb +57 -0
  36. data/lib/mailersend/whatsapp_messages/whatsapp_messages.rb +47 -0
  37. data/lib/mailersend/whatsapp_recipient/whatsapp_recipient.rb +38 -0
  38. data/lib/mailersend/whatsapp_templates/whatsapp_templates.rb +44 -0
  39. data/lib/mailersend.rb +8 -0
  40. data/spec/email_rspec.rb +15 -0
  41. data/spec/emails_rspec.rb +175 -0
  42. data/spec/whatsapp_activities_rspec.rb +38 -0
  43. data/spec/whatsapp_inbound_messages_rspec.rb +49 -0
  44. data/spec/whatsapp_items_rspec.rb +52 -0
  45. data/spec/whatsapp_messages_rspec.rb +50 -0
  46. data/spec/whatsapp_recipient_rspec.rb +40 -0
  47. data/spec/whatsapp_rspec.rb +65 -0
  48. data/spec/whatsapp_templates_rspec.rb +48 -0
  49. metadata +39 -1
@@ -0,0 +1,47 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://api.mailersend.com/v1/whatsapp/send
6
+ body:
7
+ encoding: UTF-8
8
+ string: '{"from":"15550001234","to":["+48600000001"],"template_id":"23zxk54v6gjy6v7m"}'
9
+ headers:
10
+ Authorization:
11
+ - "<AUTH>"
12
+ User-Agent:
13
+ - MailerSend-client-ruby/3.3.0
14
+ Accept:
15
+ - application/json
16
+ Connection:
17
+ - close
18
+ Content-Type:
19
+ - application/json; charset=utf-8
20
+ Host:
21
+ - api.mailersend.com
22
+ response:
23
+ status:
24
+ code: 202
25
+ message: Accepted
26
+ headers:
27
+ Date:
28
+ - Mon, 31 Aug 2026 07:24:20 GMT
29
+ Content-Type:
30
+ - application/json
31
+ Transfer-Encoding:
32
+ - chunked
33
+ Connection:
34
+ - close
35
+ X-Message-Id:
36
+ - 67f91abd69f79df391e9d78d
37
+ Cache-Control:
38
+ - no-cache, private
39
+ Strict-Transport-Security:
40
+ - max-age=31536000; includeSubDomains
41
+ Server:
42
+ - cloudflare
43
+ body:
44
+ encoding: UTF-8
45
+ string: '{"data":{"id":"67f91abd69f79df391e9d78d","created_at":"2026-08-31 07:24:20"}}'
46
+ recorded_at: Mon, 31 Aug 2026 07:24:20 GMT
47
+ recorded_with: VCR 6.3.1
@@ -0,0 +1,47 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://api.mailersend.com/v1/whatsapp/send
6
+ body:
7
+ encoding: UTF-8
8
+ string: '{"from":"15550001234","to":["+48600000001","+48600000002"],"template_id":"23zxk54v6gjy6v7m"}'
9
+ headers:
10
+ Authorization:
11
+ - "<AUTH>"
12
+ User-Agent:
13
+ - MailerSend-client-ruby/3.3.0
14
+ Accept:
15
+ - application/json
16
+ Connection:
17
+ - close
18
+ Content-Type:
19
+ - application/json; charset=utf-8
20
+ Host:
21
+ - api.mailersend.com
22
+ response:
23
+ status:
24
+ code: 202
25
+ message: Accepted
26
+ headers:
27
+ Date:
28
+ - Mon, 31 Aug 2026 07:24:20 GMT
29
+ Content-Type:
30
+ - application/json
31
+ Transfer-Encoding:
32
+ - chunked
33
+ Connection:
34
+ - close
35
+ X-Message-Id:
36
+ - 67f91abd69f79df391e9d78d
37
+ Cache-Control:
38
+ - no-cache, private
39
+ Strict-Transport-Security:
40
+ - max-age=31536000; includeSubDomains
41
+ Server:
42
+ - cloudflare
43
+ body:
44
+ encoding: UTF-8
45
+ string: '{"data":{"id":"67f91abd69f79df391e9d78d","created_at":"2026-08-31 07:24:20"}}'
46
+ recorded_at: Mon, 31 Aug 2026 07:24:20 GMT
47
+ recorded_with: VCR 6.3.1
@@ -0,0 +1,47 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://api.mailersend.com/v1/whatsapp/send
6
+ body:
7
+ encoding: UTF-8
8
+ string: '{"from":"15550001234","to":["+48600000001"],"template_id":"23zxk54v6gjy6v7m","personalization":[{"to":"+48600000001","data":{"header":["Order #12345"],"body":["John","December 31, 2026"],"buttons":["orders/12345"]}}]}'
9
+ headers:
10
+ Authorization:
11
+ - "<AUTH>"
12
+ User-Agent:
13
+ - MailerSend-client-ruby/3.3.0
14
+ Accept:
15
+ - application/json
16
+ Connection:
17
+ - close
18
+ Content-Type:
19
+ - application/json; charset=utf-8
20
+ Host:
21
+ - api.mailersend.com
22
+ response:
23
+ status:
24
+ code: 202
25
+ message: Accepted
26
+ headers:
27
+ Date:
28
+ - Mon, 31 Aug 2026 07:24:20 GMT
29
+ Content-Type:
30
+ - application/json
31
+ Transfer-Encoding:
32
+ - chunked
33
+ Connection:
34
+ - close
35
+ X-Message-Id:
36
+ - 67f91abd69f79df391e9d78d
37
+ Cache-Control:
38
+ - no-cache, private
39
+ Strict-Transport-Security:
40
+ - max-age=31536000; includeSubDomains
41
+ Server:
42
+ - cloudflare
43
+ body:
44
+ encoding: UTF-8
45
+ string: '{"data":{"id":"67f91abd69f79df391e9d78d","created_at":"2026-08-31 07:24:20"}}'
46
+ recorded_at: Mon, 31 Aug 2026 07:24:20 GMT
47
+ recorded_with: VCR 6.3.1
@@ -0,0 +1,43 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.mailersend.com/v1/whatsapp/activities?date_from=1791936000&date_to=1792022400&limit=25&page=1&recipient=48600000001&type%5B%5D=delivered&type%5B%5D=read&whatsapp_item_id=67f91abe2202f3705540234a&whatsapp_message_id=67f91abd69f79df391e9d78d
6
+ body:
7
+ encoding: ASCII-8BIT
8
+ string: ''
9
+ headers:
10
+ Authorization:
11
+ - "<AUTH>"
12
+ User-Agent:
13
+ - MailerSend-client-ruby/3.4.0
14
+ Accept:
15
+ - application/json
16
+ Connection:
17
+ - close
18
+ Host:
19
+ - api.mailersend.com
20
+ response:
21
+ status:
22
+ code: 200
23
+ message: OK
24
+ headers:
25
+ Date:
26
+ - Tue, 20 Oct 2026 08:00:00 GMT
27
+ Content-Type:
28
+ - application/json
29
+ Transfer-Encoding:
30
+ - chunked
31
+ Connection:
32
+ - close
33
+ Cache-Control:
34
+ - no-cache, private
35
+ Strict-Transport-Security:
36
+ - max-age=31536000; includeSubDomains
37
+ Server:
38
+ - cloudflare
39
+ body:
40
+ encoding: UTF-8
41
+ string: '{"data":[{"id":"6acf9f214069f5eceb882bf1","whatsapp_item_id":"67f91abe2202f3705540234a","whatsapp_message_id":"67f91abd69f79df391e9d78d","whatsapp_account_id":"3enl6x27wmrxrl2v","from":"15550001234","to":"48600000001","type":"read","created_at":"2026-10-14T12:31:02.000000Z"},{"id":"6acf9f214069f5eceb882bea","whatsapp_item_id":"67f91abe2202f3705540234a","whatsapp_message_id":"67f91abd69f79df391e9d78d","whatsapp_account_id":"3enl6x27wmrxrl2v","from":"15550001234","to":"48600000001","type":"delivered","created_at":"2026-10-14T12:25:36.000000Z"}],"links":{"first":"https://api.mailersend.com/v1/whatsapp/activities?page=1","last":null,"prev":null,"next":null},"meta":{"current_page":1,"current_page_url":"https://api.mailersend.com/v1/whatsapp/activities?page=1","from":1,"path":"https://api.mailersend.com/v1/whatsapp/activities","per_page":25,"to":2}}'
42
+ recorded_at: Tue, 20 Oct 2026 08:00:00 GMT
43
+ recorded_with: VCR 6.3.1
@@ -0,0 +1,43 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.mailersend.com/v1/whatsapp/inbound-messages/62f114a3165fe0d8db0288d1
6
+ body:
7
+ encoding: ASCII-8BIT
8
+ string: ''
9
+ headers:
10
+ Authorization:
11
+ - "<AUTH>"
12
+ User-Agent:
13
+ - MailerSend-client-ruby/3.4.0
14
+ Accept:
15
+ - application/json
16
+ Connection:
17
+ - close
18
+ Host:
19
+ - api.mailersend.com
20
+ response:
21
+ status:
22
+ code: 200
23
+ message: OK
24
+ headers:
25
+ Date:
26
+ - Tue, 20 Oct 2026 08:00:00 GMT
27
+ Content-Type:
28
+ - application/json
29
+ Transfer-Encoding:
30
+ - chunked
31
+ Connection:
32
+ - close
33
+ Cache-Control:
34
+ - no-cache, private
35
+ Strict-Transport-Security:
36
+ - max-age=31536000; includeSubDomains
37
+ Server:
38
+ - cloudflare
39
+ body:
40
+ encoding: UTF-8
41
+ string: '{"data":{"id":"62f114a3165fe0d8db0288d1","whatsapp_account_id":"3enl6x27wmrxrl2v","from":"48600000001","to":"15550001234","type":"interactive","received_at":"2026-10-14T12:36:44.000000Z","meta":{"reply_type":"list_reply","id":"delivery_today","title":"Deliver today","description":"Between 4 PM and 8 PM"},"context":{"message_id":"wamid.HBgLMzcwNjMzMjI3OTcVAgARGBIwREE3N0EwN0EyNjhENjEwOEMA"}}}'
42
+ recorded_at: Tue, 20 Oct 2026 08:00:00 GMT
43
+ recorded_with: VCR 6.3.1
@@ -0,0 +1,43 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.mailersend.com/v1/whatsapp/inbound-messages?date_from=1790000000&date_to=1790086400&from=48600000001&limit=25&page=1&type%5B%5D=image&type%5B%5D=text&whatsapp_account_id=3enl6x27wmrxrl2v
6
+ body:
7
+ encoding: ASCII-8BIT
8
+ string: ''
9
+ headers:
10
+ Authorization:
11
+ - "<AUTH>"
12
+ User-Agent:
13
+ - MailerSend-client-ruby/3.4.0
14
+ Accept:
15
+ - application/json
16
+ Connection:
17
+ - close
18
+ Host:
19
+ - api.mailersend.com
20
+ response:
21
+ status:
22
+ code: 200
23
+ message: OK
24
+ headers:
25
+ Date:
26
+ - Tue, 20 Oct 2026 08:00:00 GMT
27
+ Content-Type:
28
+ - application/json
29
+ Transfer-Encoding:
30
+ - chunked
31
+ Connection:
32
+ - close
33
+ Cache-Control:
34
+ - no-cache, private
35
+ Strict-Transport-Security:
36
+ - max-age=31536000; includeSubDomains
37
+ Server:
38
+ - cloudflare
39
+ body:
40
+ encoding: UTF-8
41
+ string: '{"data":[{"id":"62f114f7165fe0d8db0288e2","whatsapp_account_id":"3enl6x27wmrxrl2v","from":"48600000001","to":"15550001234","type":"text","received_at":"2026-10-14T12:41:19.000000Z","meta":{"body":"Hello, I would like to check my order status."},"context":{"message_id":"wamid.HBgLMzcwNjMzMjI3OTcVAgARGBIwREE3N0EwN0EyNjhENjEwOEMA"}},{"id":"62f114c1165fe0d8db0288d9","whatsapp_account_id":"3enl6x27wmrxrl2v","from":"48600000001","to":"15550001234","type":"image","received_at":"2026-10-14T12:38:03.000000Z","meta":{"url":"https://app.mailersend.com/whatsapp/inbound-message-attachment/62f114c1165fe0d8db0288d9?account=3enl6x27wmrxrl2v&expires=1792022400&signature=...","status":"stored","mime_type":"image/jpeg","size":102400,"caption":"Here is the damaged item"}}],"links":{"first":"https://api.mailersend.com/v1/whatsapp/inbound-messages?page=1","last":null,"prev":null,"next":null},"meta":{"current_page":1,"current_page_url":"https://api.mailersend.com/v1/whatsapp/inbound-messages?page=1","from":1,"path":"https://api.mailersend.com/v1/whatsapp/inbound-messages","per_page":25,"to":2}}'
42
+ recorded_at: Tue, 20 Oct 2026 08:00:00 GMT
43
+ recorded_with: VCR 6.3.1
@@ -0,0 +1,43 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.mailersend.com/v1/whatsapp/items/67f91abe2202f3705540234a
6
+ body:
7
+ encoding: ASCII-8BIT
8
+ string: ''
9
+ headers:
10
+ Authorization:
11
+ - "<AUTH>"
12
+ User-Agent:
13
+ - MailerSend-client-ruby/3.4.0
14
+ Accept:
15
+ - application/json
16
+ Connection:
17
+ - close
18
+ Host:
19
+ - api.mailersend.com
20
+ response:
21
+ status:
22
+ code: 200
23
+ message: OK
24
+ headers:
25
+ Date:
26
+ - Tue, 20 Oct 2026 08:00:00 GMT
27
+ Content-Type:
28
+ - application/json
29
+ Transfer-Encoding:
30
+ - chunked
31
+ Connection:
32
+ - close
33
+ Cache-Control:
34
+ - no-cache, private
35
+ Strict-Transport-Security:
36
+ - max-age=31536000; includeSubDomains
37
+ Server:
38
+ - cloudflare
39
+ body:
40
+ encoding: UTF-8
41
+ string: '{"data":{"id":"67f91abe2202f3705540234a","whatsapp_message_id":"67f91abd69f79df391e9d78d","whatsapp_account_id":"3enl6x27wmrxrl2v","from":"15550001234","to":"48600000001","status":"read","template_id":"23zxk54v6gjy6v7m","template_name":"Order confirmation","error_code":null,"error_message":null,"created_at":"2026-10-14T12:25:33.000000Z","recipient":{"id":"67f91abe2202f37055402301","phone_number":"48600000001","username":null,"status":"active","created_at":"2026-09-02T08:14:51.000000Z"},"activity":[{"type":"queued","created_at":"2026-10-14T12:25:33.000000Z"},{"type":"sent","created_at":"2026-10-14T12:25:34.000000Z"},{"type":"delivered","created_at":"2026-10-14T12:25:36.000000Z"},{"type":"read","created_at":"2026-10-14T12:31:02.000000Z"}]}}'
42
+ recorded_at: Tue, 20 Oct 2026 08:00:00 GMT
43
+ recorded_with: VCR 6.3.1
@@ -0,0 +1,43 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.mailersend.com/v1/whatsapp/items?date_from=1791936000&date_to=1792022400&from=15550001234&limit=25&page=1&recipient=48600000002&status%5B%5D=failed&status%5B%5D=read&template_id=23zxk54v6gjy6v7m&whatsapp_account_id=3enl6x27wmrxrl2v&whatsapp_message_id=67f91abd69f79df391e9d78d
6
+ body:
7
+ encoding: ASCII-8BIT
8
+ string: ''
9
+ headers:
10
+ Authorization:
11
+ - "<AUTH>"
12
+ User-Agent:
13
+ - MailerSend-client-ruby/3.4.0
14
+ Accept:
15
+ - application/json
16
+ Connection:
17
+ - close
18
+ Host:
19
+ - api.mailersend.com
20
+ response:
21
+ status:
22
+ code: 200
23
+ message: OK
24
+ headers:
25
+ Date:
26
+ - Tue, 20 Oct 2026 08:00:00 GMT
27
+ Content-Type:
28
+ - application/json
29
+ Transfer-Encoding:
30
+ - chunked
31
+ Connection:
32
+ - close
33
+ Cache-Control:
34
+ - no-cache, private
35
+ Strict-Transport-Security:
36
+ - max-age=31536000; includeSubDomains
37
+ Server:
38
+ - cloudflare
39
+ body:
40
+ encoding: UTF-8
41
+ string: '{"data":[{"id":"67f91abe2202f3705540234b","whatsapp_message_id":"67f91abd69f79df391e9d78d","whatsapp_account_id":"3enl6x27wmrxrl2v","from":"15550001234","to":"48600000002","status":"failed","template_id":"23zxk54v6gjy6v7m","template_name":"Order confirmation","error_code":131026,"error_message":"Message undeliverable","created_at":"2026-10-14T12:25:33.000000Z"}],"links":{"first":"https://api.mailersend.com/v1/whatsapp/items?page=1","last":null,"prev":null,"next":null},"meta":{"current_page":1,"current_page_url":"https://api.mailersend.com/v1/whatsapp/items?page=1","from":1,"path":"https://api.mailersend.com/v1/whatsapp/items","per_page":25,"to":1}}'
42
+ recorded_at: Tue, 20 Oct 2026 08:00:00 GMT
43
+ recorded_with: VCR 6.3.1
@@ -0,0 +1,43 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.mailersend.com/v1/whatsapp/messages/67f91abd69f79df391e9d78d
6
+ body:
7
+ encoding: ASCII-8BIT
8
+ string: ''
9
+ headers:
10
+ Authorization:
11
+ - "<AUTH>"
12
+ User-Agent:
13
+ - MailerSend-client-ruby/3.4.0
14
+ Accept:
15
+ - application/json
16
+ Connection:
17
+ - close
18
+ Host:
19
+ - api.mailersend.com
20
+ response:
21
+ status:
22
+ code: 200
23
+ message: OK
24
+ headers:
25
+ Date:
26
+ - Tue, 20 Oct 2026 08:00:00 GMT
27
+ Content-Type:
28
+ - application/json
29
+ Transfer-Encoding:
30
+ - chunked
31
+ Connection:
32
+ - close
33
+ Cache-Control:
34
+ - no-cache, private
35
+ Strict-Transport-Security:
36
+ - max-age=31536000; includeSubDomains
37
+ Server:
38
+ - cloudflare
39
+ body:
40
+ encoding: UTF-8
41
+ string: '{"data":{"id":"67f91abd69f79df391e9d78d","from":"15550001234","to":["48600000001","48600000002"],"whatsapp_account_id":"3enl6x27wmrxrl2v","template_id":"23zxk54v6gjy6v7m","created_at":"2026-10-14T12:25:33.000000Z","items":[{"id":"67f91abe2202f3705540234a","whatsapp_message_id":"67f91abd69f79df391e9d78d","whatsapp_account_id":"3enl6x27wmrxrl2v","from":"15550001234","to":"48600000001","status":"read","template_id":"23zxk54v6gjy6v7m","template_name":"Order confirmation","error_code":null,"error_message":null,"created_at":"2026-10-14T12:25:33.000000Z"},{"id":"67f91abe2202f3705540234b","whatsapp_message_id":"67f91abd69f79df391e9d78d","whatsapp_account_id":"3enl6x27wmrxrl2v","from":"15550001234","to":"48600000002","status":"failed","template_id":"23zxk54v6gjy6v7m","template_name":"Order confirmation","error_code":131026,"error_message":"Message undeliverable","created_at":"2026-10-14T12:25:33.000000Z"}]}}'
42
+ recorded_at: Tue, 20 Oct 2026 08:00:00 GMT
43
+ recorded_with: VCR 6.3.1
@@ -0,0 +1,43 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.mailersend.com/v1/whatsapp/messages?date_from=1791936000&date_to=1792022400&from=15550001234&limit=25&page=1&template_id=23zxk54v6gjy6v7m&whatsapp_account_id=3enl6x27wmrxrl2v
6
+ body:
7
+ encoding: ASCII-8BIT
8
+ string: ''
9
+ headers:
10
+ Authorization:
11
+ - "<AUTH>"
12
+ User-Agent:
13
+ - MailerSend-client-ruby/3.4.0
14
+ Accept:
15
+ - application/json
16
+ Connection:
17
+ - close
18
+ Host:
19
+ - api.mailersend.com
20
+ response:
21
+ status:
22
+ code: 200
23
+ message: OK
24
+ headers:
25
+ Date:
26
+ - Tue, 20 Oct 2026 08:00:00 GMT
27
+ Content-Type:
28
+ - application/json
29
+ Transfer-Encoding:
30
+ - chunked
31
+ Connection:
32
+ - close
33
+ Cache-Control:
34
+ - no-cache, private
35
+ Strict-Transport-Security:
36
+ - max-age=31536000; includeSubDomains
37
+ Server:
38
+ - cloudflare
39
+ body:
40
+ encoding: UTF-8
41
+ string: '{"data":[{"id":"67f91abd69f79df391e9d78d","from":"15550001234","to":["48600000001","48600000002"],"whatsapp_account_id":"3enl6x27wmrxrl2v","template_id":"23zxk54v6gjy6v7m","created_at":"2026-10-14T12:25:33.000000Z"},{"id":"67f91a0c69f79df391e9d6a1","from":null,"to":["US.13491208655302741918"],"whatsapp_account_id":"p6nq4jyzkyv5x3zl","template_id":"6v7m23zxk54vgjy2","created_at":"2026-10-14T12:21:16.000000Z"}],"links":{"first":"https://api.mailersend.com/v1/whatsapp/messages?page=1","last":null,"prev":null,"next":null},"meta":{"current_page":1,"current_page_url":"https://api.mailersend.com/v1/whatsapp/messages?page=1","from":1,"path":"https://api.mailersend.com/v1/whatsapp/messages","per_page":25,"to":2}}'
42
+ recorded_at: Tue, 20 Oct 2026 08:00:00 GMT
43
+ recorded_with: VCR 6.3.1
@@ -0,0 +1,43 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.mailersend.com/v1/whatsapp/recipients/67f91abe2202f37055402301
6
+ body:
7
+ encoding: ASCII-8BIT
8
+ string: ''
9
+ headers:
10
+ Authorization:
11
+ - "<AUTH>"
12
+ User-Agent:
13
+ - MailerSend-client-ruby/3.4.0
14
+ Accept:
15
+ - application/json
16
+ Connection:
17
+ - close
18
+ Host:
19
+ - api.mailersend.com
20
+ response:
21
+ status:
22
+ code: 200
23
+ message: OK
24
+ headers:
25
+ Date:
26
+ - Tue, 20 Oct 2026 08:00:00 GMT
27
+ Content-Type:
28
+ - application/json
29
+ Transfer-Encoding:
30
+ - chunked
31
+ Connection:
32
+ - close
33
+ Cache-Control:
34
+ - no-cache, private
35
+ Strict-Transport-Security:
36
+ - max-age=31536000; includeSubDomains
37
+ Server:
38
+ - cloudflare
39
+ body:
40
+ encoding: UTF-8
41
+ string: '{"data":{"id":"67f91abe2202f37055402301","phone_number":"48600000001","username":null,"status":"active","created_at":"2026-09-02T08:14:51.000000Z","items":[{"id":"67f91abe2202f3705540234a","whatsapp_message_id":"67f91abd69f79df391e9d78d","whatsapp_account_id":"3enl6x27wmrxrl2v","from":"15550001234","to":"48600000001","status":"read","template_id":"23zxk54v6gjy6v7m","template_name":"Order confirmation","error_code":null,"error_message":null,"created_at":"2026-10-14T12:25:33.000000Z"}]}}'
42
+ recorded_at: Tue, 20 Oct 2026 08:00:00 GMT
43
+ recorded_with: VCR 6.3.1
@@ -0,0 +1,43 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.mailersend.com/v1/whatsapp/recipients?limit=25&page=1&phone_number=48600000001&status=active
6
+ body:
7
+ encoding: ASCII-8BIT
8
+ string: ''
9
+ headers:
10
+ Authorization:
11
+ - "<AUTH>"
12
+ User-Agent:
13
+ - MailerSend-client-ruby/3.4.0
14
+ Accept:
15
+ - application/json
16
+ Connection:
17
+ - close
18
+ Host:
19
+ - api.mailersend.com
20
+ response:
21
+ status:
22
+ code: 200
23
+ message: OK
24
+ headers:
25
+ Date:
26
+ - Tue, 20 Oct 2026 08:00:00 GMT
27
+ Content-Type:
28
+ - application/json
29
+ Transfer-Encoding:
30
+ - chunked
31
+ Connection:
32
+ - close
33
+ Cache-Control:
34
+ - no-cache, private
35
+ Strict-Transport-Security:
36
+ - max-age=31536000; includeSubDomains
37
+ Server:
38
+ - cloudflare
39
+ body:
40
+ encoding: UTF-8
41
+ string: '{"data":[{"id":"67f91abe2202f37055402301","phone_number":"48600000001","username":null,"status":"active","created_at":"2026-09-02T08:14:51.000000Z"}],"links":{"first":"https://api.mailersend.com/v1/whatsapp/recipients?page=1","last":null,"prev":null,"next":null},"meta":{"current_page":1,"current_page_url":"https://api.mailersend.com/v1/whatsapp/recipients?page=1","from":1,"path":"https://api.mailersend.com/v1/whatsapp/recipients","per_page":25,"to":1}}'
42
+ recorded_at: Tue, 20 Oct 2026 08:00:00 GMT
43
+ recorded_with: VCR 6.3.1
@@ -0,0 +1,43 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.mailersend.com/v1/whatsapp/templates/23zxk54v6gjy6v7m
6
+ body:
7
+ encoding: ASCII-8BIT
8
+ string: ''
9
+ headers:
10
+ Authorization:
11
+ - "<AUTH>"
12
+ User-Agent:
13
+ - MailerSend-client-ruby/3.4.0
14
+ Accept:
15
+ - application/json
16
+ Connection:
17
+ - close
18
+ Host:
19
+ - api.mailersend.com
20
+ response:
21
+ status:
22
+ code: 200
23
+ message: OK
24
+ headers:
25
+ Date:
26
+ - Tue, 20 Oct 2026 08:00:00 GMT
27
+ Content-Type:
28
+ - application/json
29
+ Transfer-Encoding:
30
+ - chunked
31
+ Connection:
32
+ - close
33
+ Cache-Control:
34
+ - no-cache, private
35
+ Strict-Transport-Security:
36
+ - max-age=31536000; includeSubDomains
37
+ Server:
38
+ - cloudflare
39
+ body:
40
+ encoding: UTF-8
41
+ string: '{"data":{"id":"23zxk54v6gjy6v7m","whatsapp_account_id":"3enl6x27wmrxrl2v","name":"order_confirmation","readable_name":"Order confirmation","category":"UTILITY","language":"en_US","status":"approved","components":{"header":{"format":"TEXT","text":"{{1}}"},"body":{"text":"Hi {{1}}, your order is confirmed and will arrive on {{2}}."},"buttons":[{"type":"URL","text":"View order","url":"https://shop.example.com/{{1}}"}]},"created_at":"2026-10-14T12:25:33.000000Z","updated_at":"2026-10-14T12:41:07.000000Z"}}'
42
+ recorded_at: Tue, 20 Oct 2026 08:00:00 GMT
43
+ recorded_with: VCR 6.3.1
@@ -0,0 +1,43 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.mailersend.com/v1/whatsapp/templates?category=UTILITY&language=en_US&limit=25&page=1&status=approved&whatsapp_account_id=3enl6x27wmrxrl2v
6
+ body:
7
+ encoding: ASCII-8BIT
8
+ string: ''
9
+ headers:
10
+ Authorization:
11
+ - "<AUTH>"
12
+ User-Agent:
13
+ - MailerSend-client-ruby/3.4.0
14
+ Accept:
15
+ - application/json
16
+ Connection:
17
+ - close
18
+ Host:
19
+ - api.mailersend.com
20
+ response:
21
+ status:
22
+ code: 200
23
+ message: OK
24
+ headers:
25
+ Date:
26
+ - Tue, 20 Oct 2026 08:00:00 GMT
27
+ Content-Type:
28
+ - application/json
29
+ Transfer-Encoding:
30
+ - chunked
31
+ Connection:
32
+ - close
33
+ Cache-Control:
34
+ - no-cache, private
35
+ Strict-Transport-Security:
36
+ - max-age=31536000; includeSubDomains
37
+ Server:
38
+ - cloudflare
39
+ body:
40
+ encoding: UTF-8
41
+ string: '{"data":[{"id":"23zxk54v6gjy6v7m","whatsapp_account_id":"3enl6x27wmrxrl2v","name":"order_confirmation","readable_name":"Order confirmation","category":"UTILITY","language":"en_US","status":"approved","components":{"header":{"format":"TEXT","text":"{{1}}"},"body":{"text":"Hi {{1}}, your order is confirmed and will arrive on {{2}}."},"buttons":[{"type":"URL","text":"View order","url":"https://shop.example.com/{{1}}"}]},"created_at":"2026-10-14T12:25:33.000000Z","updated_at":"2026-10-14T12:41:07.000000Z"},{"id":"p6nq4jyzkyv5x3zl","whatsapp_account_id":"3enl6x27wmrxrl2v","name":"delivery_update","readable_name":"Delivery update","category":"UTILITY","language":"en_US","status":"approved","components":{"header":null,"body":{"text":"Your parcel is out for delivery today."},"buttons":[{"type":"QUICK_REPLY","text":"Change delivery time","url":null}]},"created_at":"2026-10-13T09:02:18.000000Z","updated_at":"2026-10-13T09:02:18.000000Z"}],"links":{"first":"https://api.mailersend.com/v1/whatsapp/templates?page=1","last":null,"prev":null,"next":null},"meta":{"current_page":1,"current_page_url":"https://api.mailersend.com/v1/whatsapp/templates?page=1","from":1,"path":"https://api.mailersend.com/v1/whatsapp/templates","per_page":25,"to":2}}'
42
+ recorded_at: Tue, 20 Oct 2026 08:00:00 GMT
43
+ recorded_with: VCR 6.3.1
data/flake.lock ADDED
@@ -0,0 +1,27 @@
1
+ {
2
+ "nodes": {
3
+ "nixpkgs": {
4
+ "locked": {
5
+ "lastModified": 1789546076,
6
+ "narHash": "sha256-zVxLZiSnmaaPLwnhj7pwmqe3axBg/C6nG5JZsJMh2g4=",
7
+ "owner": "NixOS",
8
+ "repo": "nixpkgs",
9
+ "rev": "b1b875982b17dabde9b4a37f3e229e74913e6db3",
10
+ "type": "github"
11
+ },
12
+ "original": {
13
+ "owner": "NixOS",
14
+ "ref": "nixos-unstable",
15
+ "repo": "nixpkgs",
16
+ "type": "github"
17
+ }
18
+ },
19
+ "root": {
20
+ "inputs": {
21
+ "nixpkgs": "nixpkgs"
22
+ }
23
+ }
24
+ },
25
+ "root": "root",
26
+ "version": 7
27
+ }