mailersend-ruby 1.0.1 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0ded61985effba003356ed3d855229fdec41ce8be1be7a36576960e1489f1290
4
- data.tar.gz: 68686eeda999cbf33c9e3d4a4b6af052ba71d33651dd4e50d9891fa90c57a35d
3
+ metadata.gz: 06fb33a6d3379015ec34d916945369c1b2604caa3f51a5fad5a20f0f22fc65ad
4
+ data.tar.gz: b14667b2ebade1bff4934506709593c5193ff8cccf5edcc68d4e61df8e4a43d9
5
5
  SHA512:
6
- metadata.gz: e7893a39a9222be6667b620f758b45ea8c8597c4a749b285c37e9e68862b47e3661bbec5ee912fe23206e19e4e1da948786836d5080cd590955e02587733e28b
7
- data.tar.gz: 9740399eaee44230132a0abf2f1e1b50aff323d13993511c43641302fb1cf574449c8c2b7772b80f6f3b2fb3bbc325fc4b8528af228680e297bb3aee1be466e9
6
+ metadata.gz: 365e01c2144cc33fad981c05f4d53f708a20d020071906fc85a1f3b714fc650e434528a7f0199316abe560dbce444d464e17d0446e30d0cdfe84f5d56ab9ee20
7
+ data.tar.gz: a94ad79bfbf227265baeb848abe11fd3755e99416a41384b71786e98ca597c468cada072a4d6bcb330a08be4219ae916ea6215542cad6082027f878f1eef0535
@@ -6,7 +6,7 @@ jobs:
6
6
  build:
7
7
  runs-on: ubuntu-latest
8
8
  steps:
9
- - uses: actions/checkout@v2
9
+ - uses: actions/checkout@v3
10
10
  - name: Set up Ruby
11
11
  uses: ruby/setup-ruby@v1
12
12
  with:
@@ -9,7 +9,7 @@ jobs:
9
9
  runs-on: ubuntu-latest
10
10
 
11
11
  steps:
12
- - uses: actions/checkout@v2
12
+ - uses: actions/checkout@v3
13
13
 
14
14
  - name: Release Gem
15
15
  if: contains(github.ref, 'refs/tags/v')
data/.rubocop.yml CHANGED
@@ -23,3 +23,6 @@ Metrics/AbcSize:
23
23
 
24
24
  Naming/FileName:
25
25
  Enabled: false
26
+
27
+ Style/FetchEnvVar:
28
+ Enabled: false
data/CHANGELOG.md CHANGED
@@ -1,5 +1,27 @@
1
1
  ## [Released]
2
2
 
3
+ ## [1.3.0] - 2022-08-03
4
+
5
+ - SMS Personalization
6
+ - SMS Messages
7
+ - SMS Inbounds
8
+ - SMS Webhooks
9
+ - Email Verification
10
+
11
+ ## [1.2.0] - 2022-06-15
12
+
13
+ - SMS Sending
14
+ - SMS Activity
15
+ - SMS Phone Numbers
16
+ - SMS Recipients
17
+
18
+ ## [1.1.0] - 2022-02-18
19
+
20
+ - Domains endpoint improvements
21
+ - Added schedule an email parameter
22
+ - Added inbound routes endpoint
23
+ - Added scheduled messages endpoint
24
+
3
25
  ## [1.0.1] - 2022-02-16
4
26
 
5
27
  - Removed puts from request response
data/README.md CHANGED
@@ -28,15 +28,27 @@ MailerSend Ruby SDK
28
28
  - [Opens by country](#opens-by-country)
29
29
  - [Opens by user-agent name](#opens-by-user-agent-name)
30
30
  - [Opens by reading environment](#opens-by-reading-environment)
31
+ - [Inbound Routes](#inbound-routes)
32
+ - [Get a list of inbound routes](#get-a-list-of-inbound-routes)
33
+ - [Get a single inbound route](#get-a-single-inbound-route)
34
+ - [Add an inbound route](#add-an-inbound-route)
35
+ - [Update an inbound route](#update-an-inbound-route)
36
+ - [Delete an inbound route](#delete-an-inbound-route)
31
37
  - [Domains](#domains)
32
38
  - [Get a list of domains](#get-a-list-of-domains)
33
39
  - [Get a single domain](#get-a-single-domain)
34
40
  - [Delete a domain](#delete-a-domain)
35
41
  - [Get recipients for a domain](#get-recipients-for-a-domain)
36
42
  - [Update domain settings](#update-domain-settings)
43
+ - [Get DNS Records](#get-dns-records)
44
+ - [Get verification status](#get-verification-status)
37
45
  - [Messages](#messages)
38
46
  - [Get a list of messages](#get-a-list-of-messages)
39
47
  - [Get info for a single message](#get-info-for-a-single-message)
48
+ - [Scheduled Messages](#scheduled-messages)
49
+ - [Get a list of scheduled messages](#get-a-list-of-scheduled-messages)
50
+ - [Get a single scheduled message](#get-a-single-scheduled-message)
51
+ - [Delete a scheduled message](#delete-a-scheduled-message)
40
52
  - [Recipients](#recipients)
41
53
  - [Get recipients](#get-recipients)
42
54
  - [Get a single recipient](#get-a-single-recipient)
@@ -55,6 +67,39 @@ MailerSend Ruby SDK
55
67
  - [Get templates](#get-templates)
56
68
  - [Get a single template](#get-a-single-template)
57
69
  - [Delete template](#delete-template)
70
+ - [Email Verification](#email-verification)
71
+ - [Get all email verification lists](#get-all-email-verification-lists)
72
+ - [Get an email verification list](#get-an-email-verification-list)
73
+ - [Create an email verification list](#create-an-email-verification-list)
74
+ - [Verify an email list](#verify-an-email-list)
75
+ - [Get email verification list results](#get-email-verification-list-results)
76
+ - [SMS](#sms)
77
+ - [SMS Messages](#sms-messages)
78
+ - [Get a list of SMS messages](#get-a-list-of-sms-messages)
79
+ - [Get info on an SMS message](#get-info-on-an-sms-message)
80
+ - [SMS Activity](#sms-activity)
81
+ - [Get a list of sms activities](#get-a-list-of-sms-activities)
82
+ - [SMS Phone Numbers](#sms-phone-numbers)
83
+ - [Get a list of SMS phone numbers](#get-a-list-of-sms-phone-numbers)
84
+ - [Get an SMS phone number](#get-an-sms-phone-number)
85
+ - [Update a single SMS phone number](#update-a-single-sms-phone-number)
86
+ - [Delete an SMS phone number](#delete-an-sms-phone-number)
87
+ - [SMS Recipients](#sms-recipients)
88
+ - [Get a list of SMS recipients](#get-a-list-of-sms-recipients)
89
+ - [Get an SMS recipient](#get-an-sms-recipient)
90
+ - [Update a single SMS recipient](#update-a-single-sms-recipient)
91
+ - [SMS Inbounds](#sms-inbounds)
92
+ - [Get a list of SMS inbound routes](#get-a-list-of-sms-inbound-routes)
93
+ - [Get a single SMS inbound route](#get-a-single-sms-inbound-route)
94
+ - [Create an SMS inbound route](#create-an-sms-inbound-route)
95
+ - [Update an SMS inbound route](#update-an-sms-inbound-route)
96
+ - [Delete an SMS inbound route](#delete-an-sms-inbound-route)
97
+ - [SMS Webhooks](#sms-webhooks)
98
+ - [Get a list of SMS webhooks](#get-a-list-of-sms-webhooks)
99
+ - [Get an SMS webhook](#get-an-sms-webhook)
100
+ - [Create an SMS webhook](#create-an-sms-webhook)
101
+ - [Update an SMS webhook](#update-an-sms-webhook)
102
+ - [Delete an SMS webhook](#delete-an-sms-webhook)
58
103
  - [Support and Feedback](#support-and-feedback)
59
104
  - [License](#license)
60
105
 
@@ -328,6 +373,69 @@ ms_analytics = Mailersend::Analytics.new
328
373
  ms_analytics.ua_type(date_from: 1620643567, date_to: 1623321967)
329
374
  ```
330
375
 
376
+ ## Inbound Routes
377
+
378
+ ### Get a list of inbound routes
379
+
380
+ ```ruby
381
+ require "mailersend-ruby"
382
+
383
+ ms_inbound_routes = Mailersend::InboundRouting.new
384
+ ms_inbound_routes.get_inbound_routes
385
+ ```
386
+
387
+ ### Get a single inbound route
388
+
389
+ ```ruby
390
+ require "mailersend-ruby"
391
+
392
+ ms_inbound_routes = Mailersend::InboundRouting.new
393
+ ms_inbound_routes.get_single_route(inbound_id: 'idofroute12412')
394
+ ```
395
+
396
+ ### Add an inbound route
397
+
398
+ ```ruby
399
+ require "mailersend-ruby"
400
+
401
+ ms_inbound_routes = Mailersend::InboundRouting.new
402
+ ms_inbound_routes.settings =
403
+ {
404
+ 'domain_id' => 'yourdomainid',
405
+ 'name' => 'inbound_name',
406
+ 'domain_enabled' => false,
407
+ 'match_filter' => { 'type' => 'match_all' },
408
+ 'forwards' => [{ 'type' => 'webhook', 'value' => 'https://example.com' }]
409
+ }
410
+ puts ms_inbound_routes.add_inbound_route
411
+ ```
412
+
413
+ ### Update an inbound route
414
+
415
+ ```ruby
416
+ require "mailersend-ruby"
417
+
418
+ ms_inbound_routes = Mailersend::InboundRouting.new
419
+ ms_inbound_routes.settings =
420
+ {
421
+ 'domain_id' => 'yourdomainid',
422
+ 'name' => 'inbound_updated',
423
+ 'domain_enabled' => false,
424
+ 'match_filter' => { 'type' => 'match_all' },
425
+ 'forwards' => [{ 'type' => 'webhook', 'value' => 'https://example.com' }]
426
+ }
427
+ puts ms_inbound_routes.update_inbound_route(inbound_id: 'idofroute12412')
428
+ ```
429
+
430
+ ### Delete an inbound route
431
+
432
+ ```ruby
433
+ require "mailersend-ruby"
434
+
435
+ ms_inbound_routes = Mailersend::InboundRouting.new
436
+ ms_inbound_routes.delete_route(inbound_id: 'idofroute12412')
437
+ ```
438
+
331
439
  ## Domains
332
440
 
333
441
  ### Get a list of domains
@@ -375,6 +483,24 @@ ms_domains = Mailersend::Domains.new
375
483
  ms_domains.settings(domain_id: "idofdomain12412", track_clicks: true, track_unsubscribe: false)
376
484
  ```
377
485
 
486
+ ### Get DNS Records
487
+
488
+ ```ruby
489
+ require "mailersend-ruby"
490
+
491
+ ms_domains = Mailersend::Domains.new
492
+ ms_domains.dns(domain_id: "idofdomain12412")
493
+ ```
494
+
495
+ ### Get verification status
496
+
497
+ ```ruby
498
+ require "mailersend-ruby"
499
+
500
+ ms_domains = Mailersend::Domains.new
501
+ ms_domains.verify(domain_id: "idofdomain12412")
502
+ ```
503
+
378
504
  ## Messages
379
505
 
380
506
  ### Get a list of messages
@@ -395,6 +521,35 @@ ms_messages = Mailersend::Messages.new
395
521
  ms_messages.single(message_id: "mess11454")
396
522
  ```
397
523
 
524
+ ## Scheduled Messages
525
+
526
+ ### Get a list of scheduled messages
527
+
528
+ ```ruby
529
+ require "mailersend-ruby"
530
+
531
+ ms_scheduled_messages = Mailersend::ScheduledMessages.new
532
+ ms_scheduled_messages.get_list
533
+ ```
534
+
535
+ ### Get a single scheduled message
536
+
537
+ ```ruby
538
+ require "mailersend-ruby"
539
+
540
+ ms_scheduled_messages = Mailersend::ScheduledMessages.new
541
+ ms_scheduled_messages.get_signle(message_id: 'mess11454')
542
+ ```
543
+
544
+ ### Delete a scheduled message
545
+
546
+ ```ruby
547
+ require "mailersend-ruby"
548
+
549
+ ms_scheduled_messages = Mailersend::ScheduledMessages.new
550
+ ms_scheduled_messages.delete(message_id: 'mess11454')
551
+ ```
552
+
398
553
  ## Recipients
399
554
 
400
555
  ### Get recipients
@@ -560,6 +715,358 @@ ms_templates = Mailersend::Templates.new
560
715
  ms_templates.delete(template_id: "id124")
561
716
  ```
562
717
 
718
+ ## Email Verification
719
+
720
+ ### Get all email verification lists
721
+
722
+ ```ruby
723
+ require "mailersend-ruby"
724
+
725
+ ms_email_verification = Mailersend::EmailVerification.new
726
+ ms_email_verification.list(page: 1, limit: 10)
727
+ ```
728
+
729
+ ### Get an email verification list
730
+
731
+ ```ruby
732
+ require "mailersend-ruby"
733
+
734
+ ms_email_verification = Mailersend::EmailVerification.new
735
+ ms_email_verification.get_single_list(email_verification_id: 'your-email-verification-id')
736
+ ```
737
+
738
+ ### Create an email verification list
739
+
740
+ ```ruby
741
+ require "mailersend-ruby"
742
+
743
+ ms_email_verification = Mailersend::EmailVerification.new
744
+ ms_email_verification.create_a_list(name: "name-your-list", emails: ["example@email.com"])
745
+ ```
746
+
747
+ ### Verify an email list
748
+
749
+ ```ruby
750
+ require "mailersend-ruby"
751
+
752
+ ms_email_verification = Mailersend::EmailVerification.new
753
+ ms_email_verification.verify_a_list(email_verification_id: 'your-email-verification-id')
754
+ ```
755
+
756
+ ### Get email verification list results
757
+
758
+ ```ruby
759
+ require "mailersend-ruby"
760
+
761
+ ms_email_verification = Mailersend::EmailVerification.new
762
+ ms_email_verification.get_list_results(email_verification_id: 'your-email-verification-id')
763
+ ```
764
+
765
+ ## SMS
766
+
767
+ ### Send an SMS
768
+
769
+ ```ruby
770
+ require "mailersend-ruby"
771
+
772
+ # Intialize the SMS class
773
+ ms_sms = Mailersend::SMS.new
774
+
775
+ # Add parameters
776
+ ms_sms.add_from('your-number')
777
+ ms_sms.add_to('client-number')
778
+ ms_sms.add_text('This is the message content')
779
+ personalization = {
780
+ phone_number: 'client-number',
781
+ data: {
782
+ test: 'Test Value'
783
+ }
784
+ }
785
+ ms_sms.add_personalization(personalization)
786
+
787
+ # Send the SMS
788
+ ms_sms.send
789
+ ```
790
+
791
+ ## SMS Messages
792
+
793
+ ### Get a list of SMS messages
794
+
795
+ ```ruby
796
+ require "mailersend-ruby"
797
+
798
+ # Intialize the SMS Messages class
799
+ ms_sms_messages = Mailersend::SMSMessages.new
800
+
801
+ # Add parameters
802
+ ms_sms_messages.list(page: 1, limit: 10)
803
+ ```
804
+
805
+ ### Get info on an SMS message
806
+
807
+ ```ruby
808
+ require "mailersend-ruby"
809
+
810
+ # Intialize the SMS Messages class
811
+ ms_sms_messages = Mailersend::SMSMessages.new
812
+
813
+ # Add parameters
814
+ ms_sms_messages.get_single_route(sms_message_id: 'your-sms-message-id')
815
+ ```
816
+
817
+ ## SMS Activity
818
+
819
+ ### Get a list of sms activities
820
+
821
+ ```ruby
822
+ require "mailersend-ruby"
823
+
824
+ # Intialize the SMS Recipient class
825
+ ms_sms_activity = Mailersend::SMSActivity.new
826
+
827
+ # Add parameters
828
+ ms_sms_activity.list(page: 1, limit: 10)
829
+ ```
830
+
831
+ ## SMS phone numbers
832
+
833
+ ### Get a list of SMS phone numbers
834
+
835
+ ```ruby
836
+ require "mailersend-ruby"
837
+
838
+ # Intialize the SMS Recipient class
839
+ ms_sms_number = Mailersend::SMSNumber.new
840
+
841
+ # Add parameters
842
+ ms_sms_number.list(page: 1, limit: 10)
843
+ ```
844
+
845
+ ### Get an SMS phone number
846
+
847
+ ```ruby
848
+ require "mailersend-ruby"
849
+
850
+ # Intialize the SMS Recipient class
851
+ ms_sms_number = Mailersend::SMSNumber.new
852
+
853
+ # Add parameters
854
+ ms_sms_number.get(sms_number_id: 'your-sms-number-id')
855
+ ```
856
+
857
+ ### Update a single SMS phone number
858
+
859
+ ```ruby
860
+ require "mailersend-ruby"
861
+
862
+ # Intialize the SMS Recipient class
863
+ ms_sms_number = Mailersend::SMSNumber.new
864
+
865
+ # Add parameters
866
+ ms_sms_number.update(sms_number_id: 'your-sms-number-id', paused: false)
867
+ ```
868
+
869
+ ### Delete an SMS phone number
870
+
871
+ ```ruby
872
+ require "mailersend-ruby"
873
+
874
+ # Intialize the SMS Recipient class
875
+ ms_sms_number = Mailersend::SMSNumber.new
876
+
877
+ # Add parameters
878
+ ms_sms_number.delete(sms_number_id: 'your-sms-number-id')
879
+ ```
880
+
881
+ ## SMS recipients
882
+
883
+ ### Get a list of SMS recipients
884
+
885
+ ```ruby
886
+ require "mailersend-ruby"
887
+
888
+ # Intialize the SMS Recipient class
889
+ ms_sms_recipient = Mailersend::SMSRecipient.new
890
+
891
+ # Add parameters
892
+ ms_sms_recipient.list(page: 1, limit: 10)
893
+ ```
894
+
895
+ ### Get an SMS recipient
896
+
897
+ ```ruby
898
+ require "mailersend-ruby"
899
+
900
+ # Intialize the SMS Recipient class
901
+ ms_sms_recipient = Mailersend::SMSRecipient.new
902
+
903
+ # Add parameters
904
+ ms_sms_recipient.get(sms_recipient_id: 'your-sms-recipient-id')
905
+ ```
906
+
907
+ ### Update a single SMS recipient
908
+
909
+ ```ruby
910
+ require "mailersend-ruby"
911
+
912
+ # Intialize the SMS Recipient class
913
+ ms_sms_recipient = Mailersend::SMSRecipient.new
914
+
915
+ # Add parameters
916
+ ms_sms_recipient.update(sms_recipient_id: 'your-sms-recipient-id', status: 'opt_out')
917
+ ```
918
+
919
+ ## SMS Inbounds
920
+
921
+ ### Get a list of SMS inbound routes
922
+
923
+ ```ruby
924
+ require "mailersend-ruby"
925
+
926
+ # Intialize the SMS Inbounds class
927
+ ms_sms_inbounds = Mailersend::SMSInbounds.new
928
+
929
+ ms_sms_inbounds.list
930
+ ```
931
+
932
+ ### Get a single SMS inbound route
933
+
934
+ ```ruby
935
+ require "mailersend-ruby"
936
+
937
+ # Intialize the SMS Inbounds class
938
+ ms_sms_inbounds = Mailersend::SMSInbounds.new
939
+
940
+ # Add parameters
941
+ ms_sms_inbounds.get_sms_inbound_route(sms_inbound_id: 'your-sms-inbound-id')
942
+ ```
943
+
944
+ ### Create an SMS inbound route
945
+
946
+ ```ruby
947
+ require "mailersend-ruby"
948
+
949
+ # Intialize the SMS Inbounds class
950
+ ms_sms_inbounds = Mailersend::SMSInbounds.new
951
+
952
+ # Add parameters
953
+ ms_sms_inbounds.settings =
954
+ {
955
+ 'forward_url' => 'https://your-forward-url',
956
+ 'name' => 'name',
957
+ 'events' => ['sms.sent', 'sms.delivered'],
958
+ 'sms_number_id' => 'your-sms-number-id'
959
+ }
960
+ puts ms_sms_inbounds.add_sms_inbound_route
961
+ ```
962
+
963
+ ### Update an SMS inbound route
964
+
965
+ ```ruby
966
+ require "mailersend-ruby"
967
+
968
+ # Intialize the SMS Inbounds class
969
+ ms_sms_inbounds = Mailersend::SMSInbounds.new
970
+
971
+ # Add parameters
972
+ ms_sms_inbounds.settings =
973
+ {
974
+ 'forward_url' => 'https://your-forward-url',
975
+ 'name' => 'name',
976
+ 'events' => ['sms.sent', 'sms.delivered'],
977
+ 'sms_number_id' => 'your-sms-number-id'
978
+ }
979
+ puts ms_sms_inbounds.update_sms_inbound_route(sms_inbound_id: 'your-sms-inbound-id')
980
+ ```
981
+
982
+ ### Delete an SMS inbound route
983
+
984
+ ```ruby
985
+ require "mailersend-ruby"
986
+
987
+ # Intialize the SMS Inbounds class
988
+ ms_sms_inbounds = Mailersend::SMSInbounds.new
989
+
990
+ # Add parameters
991
+ ms_sms_inbounds.delete_sms_inbound_route(sms_inbound_id: 'your-sms-inbound-id')
992
+ ```
993
+
994
+ ## SMS Webhooks
995
+
996
+ ### Get a list of SMS webhooks
997
+
998
+ ```ruby
999
+ require "mailersend-ruby"
1000
+
1001
+ # Intialize the SMS Webhooks class
1002
+ ms_sms_webhooks = Mailersend::SMSWebhooks.new
1003
+
1004
+ # Add parameters
1005
+ ms_sms_webhooks.list(sms_number_id: 'your-sms-number-id')
1006
+ ```
1007
+
1008
+ ### Get an SMS webhook
1009
+
1010
+ ```ruby
1011
+ require "mailersend-ruby"
1012
+
1013
+ # Intialize the SMS Webhooks class
1014
+ ms_sms_webhooks = Mailersend::SMSWebhooks.new
1015
+
1016
+ # Add parameters
1017
+ ms_sms_webhooks.get_sms_webhook_route(sms_webhook_id: 'your-sms-webhook-id')
1018
+ ```
1019
+
1020
+ ### Create an SMS webhook
1021
+
1022
+ ```ruby
1023
+ require "mailersend-ruby"
1024
+
1025
+ # Intialize the SMS Webhooks class
1026
+ ms_sms_webhooks = Mailersend::SMSWebhooks.new
1027
+
1028
+ # Add parameters
1029
+ ms_sms_webhooks.settings =
1030
+ {
1031
+ 'sms_number_id' => 'your-sms-number-id',
1032
+ 'name' => 'your-name',
1033
+ 'url' => 'https://your-url.com',
1034
+ 'events' => ['sms.sent', 'sms.delivered']
1035
+ }
1036
+ puts ms_sms_webhooks.add_sms_webhook_route
1037
+ ```
1038
+
1039
+ ### Update an SMS webhook
1040
+
1041
+ ```ruby
1042
+ require "mailersend-ruby"
1043
+
1044
+ # Intialize the SMS Webhooks class
1045
+ ms_sms_webhooks = Mailersend::SMSWebhooks.new
1046
+
1047
+ # Add parameters
1048
+ ms_sms_webhooks.settings =
1049
+ {
1050
+ 'sms_number_id' => 'your-sms-number-id',
1051
+ 'name' => 'your-name',
1052
+ 'url' => 'https://your-url.com',
1053
+ 'events' => ['sms.sent', 'sms.delivered']
1054
+ }
1055
+ puts ms_sms_webhooks.update_sms_webhook_route(sms_webhook_id: 'your-sms-webhook-id')
1056
+ ```
1057
+
1058
+ ### Delete an SMS webhook
1059
+
1060
+ ```ruby
1061
+ require "mailersend-ruby"
1062
+
1063
+ # Intialize the SMS Webhooks class
1064
+ ms_sms_webhooks = Mailersend::SMSWebhooks.new
1065
+
1066
+ # Add parameters
1067
+ ms_sms_webhooks.delete_sms_webhook_route(sms_webhook_id: 'your-sms-webhook-id')
1068
+ ```
1069
+
563
1070
  # Support and Feedback
564
1071
 
565
1072
  In case you find any bugs, submit an issue directly here in GitHub.
@@ -64,5 +64,13 @@ module Mailersend
64
64
  }
65
65
  client.http.put("#{API_URL}/domains/#{domain_id}/settings", json: hash.compact)
66
66
  end
67
+
68
+ def dns(domain_id:)
69
+ client.http.get(URI::HTTPS.build(host: API_BASE_HOST, path: "/v1/domains/#{domain_id}/dns-records"))
70
+ end
71
+
72
+ def verify(domain_id:)
73
+ client.http.get(URI::HTTPS.build(host: API_BASE_HOST, path: "/v1/domains/#{domain_id}/verify"))
74
+ end
67
75
  end
68
76
  end
@@ -18,7 +18,8 @@ module Mailersend
18
18
  :template_id,
19
19
  :tags,
20
20
  :variables,
21
- :personalization
21
+ :personalization,
22
+ :send_at
22
23
 
23
24
  def initialize(client = Mailersend::Client.new)
24
25
  @client = client
@@ -34,6 +35,7 @@ module Mailersend
34
35
  @personalization = []
35
36
  @attachments = []
36
37
  @tags = []
38
+ @send_at = send_at
37
39
  end
38
40
 
39
41
  def add_recipients(recipients)
@@ -93,6 +95,10 @@ module Mailersend
93
95
  }
94
96
  end
95
97
 
98
+ def add_send_at(send_at)
99
+ @send_at = send_at
100
+ end
101
+
96
102
  def send
97
103
  message = {
98
104
  'from' => @from,
@@ -106,7 +112,8 @@ module Mailersend
106
112
  'variables' => @variables,
107
113
  'personalization' => @personalization,
108
114
  'template_id' => @template_id,
109
- 'attachments' => @attachments
115
+ 'attachments' => @attachments,
116
+ 'send_at' => @send_at
110
117
  }
111
118
 
112
119
  client.http.post("#{API_URL}/email", json: message.delete_if { |_, value| value.to_s.strip == '' || value == [] || value == {} })
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mailersend
4
+ # Email verification endpoint from MailerSend API.
5
+ class EmailVerification
6
+ attr_accessor :client,
7
+ :page,
8
+ :limit,
9
+ :email_verification_id
10
+
11
+ def initialize(client = Mailersend::Client.new)
12
+ @client = client
13
+ @page = page
14
+ @limit = limit
15
+ @email_verification_id = email_verification_id
16
+ end
17
+
18
+ def list(page: nil, limit: nil)
19
+ hash = {
20
+ 'page' => page,
21
+ 'limit' => limit
22
+ }
23
+ client.http.get(URI::HTTPS.build(host: API_BASE_HOST, path: '/v1/email-verification',
24
+ query: URI.encode_www_form(hash)))
25
+ end
26
+
27
+ def get_single_list(email_verification_id:)
28
+ client.http.get("#{API_URL}/email-verification/#{email_verification_id}")
29
+ end
30
+
31
+ def create_a_list(name: nil, emails: nil)
32
+ hash = {
33
+ 'name' => name,
34
+ 'emails' => emails
35
+ }
36
+ client.http.post("#{API_URL}/email-verification", json: hash.compact)
37
+ end
38
+
39
+ def verify_a_list(email_verification_id:)
40
+ client.http.get("#{API_URL}/email-verification/#{email_verification_id}/verify")
41
+ end
42
+
43
+ def get_list_results(email_verification_id:)
44
+ client.http.get("#{API_URL}/email-verification/#{email_verification_id}/results")
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mailersend
4
+ # Inbound routing endpoint from MailerSend API.
5
+ class InboundRouting
6
+ attr_accessor :client,
7
+ :domain_id,
8
+ :page,
9
+ :limit,
10
+ :inbound_id,
11
+ :settings
12
+
13
+ def initialize(client = Mailersend::Client.new)
14
+ @client = client
15
+ @domain_id = domain_id
16
+ @page = page
17
+ @limit = limit
18
+ @inbound_id = inbound_id
19
+ @settings = []
20
+ end
21
+
22
+ def get_inbound_routes(*)
23
+ client.http.get("#{API_URL}/inbound")
24
+ end
25
+
26
+ def get_single_route(inbound_id:)
27
+ client.http.get("#{API_URL}/inbound/#{inbound_id}")
28
+ end
29
+
30
+ def add_inbound_route
31
+ client.http.post("#{API_URL}/inbound", json: @settings)
32
+ end
33
+
34
+ def update_inbound_route(inbound_id:)
35
+ client.http.put("#{API_URL}/inbound/#{inbound_id}", json: @settings)
36
+ end
37
+
38
+ def delete_route(inbound_id:)
39
+ client.http.delete("#{API_URL}/inbound/#{inbound_id}")
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mailersend
4
+ # Scheduled messages endpoint from MailerSend API.
5
+ class ScheduledMessages
6
+ attr_accessor :client,
7
+ :domain_id,
8
+ :status,
9
+ :page,
10
+ :limit,
11
+ :message_id
12
+
13
+ def initialize(client = Mailersend::Client.new)
14
+ @client = client
15
+ @domain_id = domain_id
16
+ @status = status
17
+ @page = page
18
+ @limit = limit
19
+ @message_id = message_id
20
+ end
21
+
22
+ def get_list(*)
23
+ client.http.get("#{API_URL}/message-schedules")
24
+ end
25
+
26
+ def get_signle(message_id:)
27
+ client.http.get("#{API_URL}/message-schedules/#{message_id}")
28
+ end
29
+
30
+ def delete(message_id:)
31
+ client.http.delete("#{API_URL}/message-schedules/#{message_id}")
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mailersend
4
+ # Send an SMS through MailerSend API
5
+ class SMS
6
+ attr_accessor :client,
7
+ :from,
8
+ :to,
9
+ :text,
10
+ :personalization
11
+
12
+ def initialize(client = Mailersend::Client.new)
13
+ @client = client
14
+ @from = {}
15
+ @to = []
16
+ @text = {}
17
+ @personalization = []
18
+ end
19
+
20
+ def add_from(from)
21
+ @from = from
22
+ end
23
+
24
+ def add_to(to)
25
+ @to << to
26
+ end
27
+
28
+ def add_text(text)
29
+ @text = text
30
+ end
31
+
32
+ def add_personalization(personalization)
33
+ @personalization << personalization
34
+ end
35
+
36
+ def send
37
+ message = {
38
+ 'from' => @from,
39
+ 'to' => @to,
40
+ 'text' => @text,
41
+ 'personalization' => @personalization
42
+ }
43
+
44
+ response = client.http.post("#{API_URL}/sms", json: message.delete_if { |_, value| value.to_s.strip == '' || value == [] || value == {} })
45
+ puts response
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mailersend
4
+ # SMS Activity endpoint from MailerSend API.
5
+ class SMSActivity
6
+ attr_accessor :client,
7
+ :page,
8
+ :limit
9
+
10
+ def initialize(client = Mailersend::Client.new)
11
+ @client = client
12
+ @page = page
13
+ @limit = limit
14
+ end
15
+
16
+ def list(page: nil, limit: nil)
17
+ hash = {
18
+ 'page' => page,
19
+ 'limit' => limit
20
+ }
21
+
22
+ client.http.get(URI::HTTPS.build(host: API_BASE_HOST, path: '/v1/sms-activity',
23
+ query: URI.encode_www_form(hash)))
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mailersend
4
+ # SMS Inbound endpoint from MailerSend API.
5
+ class SMSInbounds
6
+ attr_accessor :client,
7
+ :page,
8
+ :limit,
9
+ :sms_number_id,
10
+ :sms_inbound_id,
11
+ :settings
12
+
13
+ def initialize(client = Mailersend::Client.new)
14
+ @client = client
15
+ @page = page
16
+ @limit = limit
17
+ @sms_number_id = sms_number_id
18
+ @sms_inbound_id = sms_inbound_id
19
+ @settings = []
20
+ end
21
+
22
+ def list(page: nil, limit: nil)
23
+ hash = {
24
+ 'page' => page,
25
+ 'limit' => limit
26
+ }
27
+
28
+ client.http.get(URI::HTTPS.build(host: API_BASE_HOST, path: '/v1/sms-inbounds',
29
+ query: URI.encode_www_form(hash)))
30
+ end
31
+
32
+ def get_sms_inbound_route(sms_inbound_id:)
33
+ client.http.get("#{API_URL}/sms-inbounds/#{sms_inbound_id}")
34
+ end
35
+
36
+ def add_sms_inbound_route
37
+ client.http.post("#{API_URL}/sms-inbounds", json: @settings)
38
+ end
39
+
40
+ def update_sms_inbound_route(sms_inbound_id:)
41
+ client.http.put("#{API_URL}/sms-inbounds/#{sms_inbound_id}", json: @settings)
42
+ end
43
+
44
+ def delete_sms_inbound_route(sms_inbound_id:)
45
+ client.http.delete("#{API_URL}/sms-inbounds/#{sms_inbound_id}")
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mailersend
4
+ # SMS Messages endpoint from MailerSend API.
5
+ class SMSMessages
6
+ attr_accessor :client,
7
+ :page,
8
+ :limit,
9
+ :sms_message_id
10
+
11
+ def initialize(client = Mailersend::Client.new)
12
+ @client = client
13
+ @page = page
14
+ @limit = limit
15
+ @sms_message_id = sms_message_id
16
+ end
17
+
18
+ def list(page: nil, limit: nil)
19
+ hash = {
20
+ 'page' => page,
21
+ 'limit' => limit
22
+ }
23
+
24
+ client.http.get(URI::HTTPS.build(host: API_BASE_HOST, path: '/v1/sms-messages',
25
+ query: URI.encode_www_form(hash)))
26
+ end
27
+
28
+ def get(sms_message_id:)
29
+ client.http.get_single_route("#{API_URL}/sms-messages/#{sms_message_id}")
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,45 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mailersend
4
+ # SMS Number endpoint from MailerSend API.
5
+ class SMSNumber
6
+ attr_accessor :client,
7
+ :paused,
8
+ :page,
9
+ :limit,
10
+ :sms_number_id
11
+
12
+ def initialize(client = Mailersend::Client.new)
13
+ @client = client
14
+ @paused = paused
15
+ @page = page
16
+ @limit = limit
17
+ @sms_number_id = sms_number_id
18
+ end
19
+
20
+ def list(page: nil, limit: nil)
21
+ hash = {
22
+ 'page' => page,
23
+ 'limit' => limit
24
+ }
25
+
26
+ client.http.get(URI::HTTPS.build(host: API_BASE_HOST, path: '/v1/sms-numbers',
27
+ query: URI.encode_www_form(hash)))
28
+ end
29
+
30
+ def get(sms_number_id:)
31
+ client.http.get("#{API_URL}/sms-numbers/#{sms_number_id}")
32
+ end
33
+
34
+ def update(sms_number_id:, paused: nil)
35
+ hash = {
36
+ 'paused' => paused
37
+ }
38
+ client.http.put("#{API_URL}/sms-numbers/#{sms_number_id}", json: hash.compact)
39
+ end
40
+
41
+ def delete(sms_number_id:)
42
+ client.http.delete("#{API_URL}/sms-numbers/#{sms_number_id}")
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mailersend
4
+ # SMS Recipient endpoint from MailerSend API.
5
+ class SMSRecipient
6
+ attr_accessor :client,
7
+ :status,
8
+ :sms_number_id,
9
+ :sms_recipient_id,
10
+ :page,
11
+ :limit
12
+
13
+ def initialize(client = Mailersend::Client.new)
14
+ @client = client
15
+ @status = status
16
+ @sms_number_id = sms_number_id
17
+ @sms_recipient_id = sms_recipient_id
18
+ @page = page
19
+ @limit = limit
20
+ end
21
+
22
+ def list(page: nil, limit: nil)
23
+ hash = {
24
+ 'page' => page,
25
+ 'limit' => limit
26
+ }
27
+
28
+ client.http.get(URI::HTTPS.build(host: API_BASE_HOST, path: '/v1/sms-recipients',
29
+ query: URI.encode_www_form(hash)))
30
+ end
31
+
32
+ def get(sms_recipient_id:)
33
+ client.http.get("#{API_URL}/sms-recipients/#{sms_recipient_id}")
34
+ end
35
+
36
+ def update(sms_recipient_id:, status: nil)
37
+ hash = {
38
+ 'status' => status
39
+ }
40
+ client.http.put("#{API_URL}/sms-recipients/#{sms_recipient_id}", json: hash.compact)
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mailersend
4
+ # SMS Webhook endpoint from MailerSend API.
5
+ class SMSWebhooks
6
+ attr_accessor :client,
7
+ :page,
8
+ :limit,
9
+ :sms_webhook_id,
10
+ :settings
11
+
12
+ def initialize(client = Mailersend::Client.new)
13
+ @client = client
14
+ @page = page
15
+ @limit = limit
16
+ @sms_webhook_id = sms_webhook_id
17
+ @settings = []
18
+ end
19
+
20
+ def list(sms_number_id:)
21
+ hash = {
22
+ 'sms_number_id' => sms_number_id
23
+ }
24
+ client.http.get(URI::HTTPS.build(host: API_BASE_HOST, path: '/v1/sms-webhooks',
25
+ query: URI.encode_www_form(hash)))
26
+ end
27
+
28
+ def get_sms_webhook_route(sms_webhook_id:)
29
+ client.http.get("#{API_URL}/sms-webhooks/#{sms_webhook_id}")
30
+ end
31
+
32
+ def add_sms_webhook_route
33
+ client.http.post("#{API_URL}/sms-webhooks", json: @settings)
34
+ end
35
+
36
+ def update_sms_webhook_route(sms_webhook_id:)
37
+ client.http.put("#{API_URL}/sms-webhooks/#{sms_webhook_id}", json: @settings)
38
+ end
39
+
40
+ def delete_sms_webhook_route(sms_webhook_id:)
41
+ client.http.delete("#{API_URL}/sms-webhooks/#{sms_webhook_id}")
42
+ end
43
+ end
44
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Mailersend
4
- VERSION = '1.0.1'
4
+ VERSION = '1.3.0'
5
5
  end
data/lib/mailersend.rb CHANGED
@@ -7,8 +7,18 @@ require_relative 'mailersend/analytics/analytics'
7
7
  require_relative 'mailersend/bulk_email/bulk_email'
8
8
  require_relative 'mailersend/domains/domains'
9
9
  require_relative 'mailersend/email/email'
10
+ require_relative 'mailersend/email_verification/email_verification'
11
+ require_relative 'mailersend/inbound_routing/inbound_routing'
10
12
  require_relative 'mailersend/messages/messages'
11
13
  require_relative 'mailersend/recipients/recipients'
14
+ require_relative 'mailersend/scheduled_messages/scheduled_messages'
15
+ require_relative 'mailersend/sms/sms'
16
+ require_relative 'mailersend/sms_activity/sms_activity'
17
+ require_relative 'mailersend/sms_messages/sms_messages'
18
+ require_relative 'mailersend/sms_number/sms_number'
19
+ require_relative 'mailersend/sms_recipient/sms_recipient'
20
+ require_relative 'mailersend/sms_inbounds/sms_inbounds'
21
+ require_relative 'mailersend/sms_webhooks/sms_webhooks'
12
22
  require_relative 'mailersend/suppressions/suppressions'
13
23
  require_relative 'mailersend/templates/templates'
14
24
  require_relative 'mailersend/tokens/tokens'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mailersend-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nikola Milojević
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-02-16 00:00:00.000000000 Z
11
+ date: 2022-08-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -138,8 +138,18 @@ files:
138
138
  - lib/mailersend/client.rb
139
139
  - lib/mailersend/domains/domains.rb
140
140
  - lib/mailersend/email/email.rb
141
+ - lib/mailersend/email_verification/email_verification.rb
142
+ - lib/mailersend/inbound_routing/inbound_routing.rb
141
143
  - lib/mailersend/messages/messages.rb
142
144
  - lib/mailersend/recipients/recipients.rb
145
+ - lib/mailersend/scheduled_messages/scheduled_messages.rb
146
+ - lib/mailersend/sms/sms.rb
147
+ - lib/mailersend/sms_activity/sms_activity.rb
148
+ - lib/mailersend/sms_inbounds/sms_inbounds.rb
149
+ - lib/mailersend/sms_messages/sms_messages.rb
150
+ - lib/mailersend/sms_number/sms_number.rb
151
+ - lib/mailersend/sms_recipient/sms_recipient.rb
152
+ - lib/mailersend/sms_webhooks/sms_webhooks.rb
143
153
  - lib/mailersend/suppressions/suppressions.rb
144
154
  - lib/mailersend/templates/templates.rb
145
155
  - lib/mailersend/tokens/tokens.rb
@@ -171,7 +181,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
171
181
  - !ruby/object:Gem::Version
172
182
  version: '0'
173
183
  requirements: []
174
- rubygems_version: 3.3.3
184
+ rubygems_version: 3.3.7
175
185
  signing_key:
176
186
  specification_version: 4
177
187
  summary: MailerSend's official Ruby SDK