mailersend-ruby 1.0.1 → 1.1.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0ded61985effba003356ed3d855229fdec41ce8be1be7a36576960e1489f1290
4
- data.tar.gz: 68686eeda999cbf33c9e3d4a4b6af052ba71d33651dd4e50d9891fa90c57a35d
3
+ metadata.gz: e8d67b989e26722f62ec3b556872643721be50947b67392f899f75115bb5dd9b
4
+ data.tar.gz: 5b9ee2fe25d34a07f71f38ff5a88137abcf22cfd1619b88b4505646e1f8facc2
5
5
  SHA512:
6
- metadata.gz: e7893a39a9222be6667b620f758b45ea8c8597c4a749b285c37e9e68862b47e3661bbec5ee912fe23206e19e4e1da948786836d5080cd590955e02587733e28b
7
- data.tar.gz: 9740399eaee44230132a0abf2f1e1b50aff323d13993511c43641302fb1cf574449c8c2b7772b80f6f3b2fb3bbc325fc4b8528af228680e297bb3aee1be466e9
6
+ metadata.gz: 5f59c4b41f8134c36df9e0dd8c3365444719d942a6a6c57e1643bd58c3973dfbb768c922b3df2291eb1e2fbb8d99df14df40e3a4dd26ebb0caade3c999cb45d0
7
+ data.tar.gz: ebcb98375a4a56f3d6033dd93fecd22bef6019ac58d2338701aaa061a6579306ccf44311a202df5194a142ac0ae55f2bc880aa6595f98e09774503ce2359a298
data/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  ## [Released]
2
2
 
3
+ ## [1.1.0] - 2022-02-18
4
+
5
+ - Domains endpoint improvements
6
+ - Added schedule an email parameter
7
+ - Added inbound routes endpoint
8
+ - Added scheduled messages endpoint
9
+
3
10
  ## [1.0.1] - 2022-02-16
4
11
 
5
12
  - 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)
@@ -328,6 +340,69 @@ ms_analytics = Mailersend::Analytics.new
328
340
  ms_analytics.ua_type(date_from: 1620643567, date_to: 1623321967)
329
341
  ```
330
342
 
343
+ ## Inbound Routes
344
+
345
+ ### Get a list of inbound routes
346
+
347
+ ```ruby
348
+ require "mailersend-ruby"
349
+
350
+ ms_inbound_routes = Mailersend::InboundRouting.new
351
+ ms_inbound_routes.get_inbound_routes
352
+ ```
353
+
354
+ ### Get a single inbound route
355
+
356
+ ```ruby
357
+ require "mailersend-ruby"
358
+
359
+ ms_inbound_routes = Mailersend::InboundRouting.new
360
+ ms_inbound_routes.get_single_route(inbound_id: 'idofroute12412')
361
+ ```
362
+
363
+ ### Add an inbound route
364
+
365
+ ```ruby
366
+ require "mailersend-ruby"
367
+
368
+ ms_inbound_routes = Mailersend::InboundRouting.new
369
+ ms_inbound_routes.settings =
370
+ {
371
+ 'domain_id' => 'yourdomainid',
372
+ 'name' => 'inbound_name',
373
+ 'domain_enabled' => false,
374
+ 'match_filter' => { 'type' => 'match_all' },
375
+ 'forwards' => [{ 'type' => 'webhook', 'value' => 'https://example.com' }]
376
+ }
377
+ puts ms_inbound_routes.add_inbound_route
378
+ ```
379
+
380
+ ### Update an inbound route
381
+
382
+ ```ruby
383
+ require "mailersend-ruby"
384
+
385
+ ms_inbound_routes = Mailersend::InboundRouting.new
386
+ ms_inbound_routes.settings =
387
+ {
388
+ 'domain_id' => 'yourdomainid',
389
+ 'name' => 'inbound_updated',
390
+ 'domain_enabled' => false,
391
+ 'match_filter' => { 'type' => 'match_all' },
392
+ 'forwards' => [{ 'type' => 'webhook', 'value' => 'https://example.com' }]
393
+ }
394
+ puts ms_inbound_routes.update_inbound_route(inbound_id: 'idofroute12412')
395
+ ```
396
+
397
+ ### Delete an inbound route
398
+
399
+ ```ruby
400
+ require "mailersend-ruby"
401
+
402
+ ms_inbound_routes = Mailersend::InboundRouting.new
403
+ ms_inbound_routes.delete_route(inbound_id: 'idofroute12412')
404
+ ```
405
+
331
406
  ## Domains
332
407
 
333
408
  ### Get a list of domains
@@ -375,6 +450,24 @@ ms_domains = Mailersend::Domains.new
375
450
  ms_domains.settings(domain_id: "idofdomain12412", track_clicks: true, track_unsubscribe: false)
376
451
  ```
377
452
 
453
+ ### Get DNS Records
454
+
455
+ ```ruby
456
+ require "mailersend-ruby"
457
+
458
+ ms_domains = Mailersend::Domains.new
459
+ ms_domains.dns(domain_id: "idofdomain12412")
460
+ ```
461
+
462
+ ### Get verification status
463
+
464
+ ```ruby
465
+ require "mailersend-ruby"
466
+
467
+ ms_domains = Mailersend::Domains.new
468
+ ms_domains.verify(domain_id: "idofdomain12412")
469
+ ```
470
+
378
471
  ## Messages
379
472
 
380
473
  ### Get a list of messages
@@ -395,6 +488,35 @@ ms_messages = Mailersend::Messages.new
395
488
  ms_messages.single(message_id: "mess11454")
396
489
  ```
397
490
 
491
+ ## Scheduled Messages
492
+
493
+ ### Get a list of scheduled messages
494
+
495
+ ```ruby
496
+ require "mailersend-ruby"
497
+
498
+ ms_scheduled_messages = Mailersend::ScheduledMessages.new
499
+ ms_scheduled_messages.get_list
500
+ ```
501
+
502
+ ### Get a single scheduled message
503
+
504
+ ```ruby
505
+ require "mailersend-ruby"
506
+
507
+ ms_scheduled_messages = Mailersend::ScheduledMessages.new
508
+ ms_scheduled_messages.get_signle(message_id: 'mess11454')
509
+ ```
510
+
511
+ ### Delete a scheduled message
512
+
513
+ ```ruby
514
+ require "mailersend-ruby"
515
+
516
+ ms_scheduled_messages = Mailersend::ScheduledMessages.new
517
+ ms_scheduled_messages.delete(message_id: 'mess11454')
518
+ ```
519
+
398
520
  ## Recipients
399
521
 
400
522
  ### Get recipients
@@ -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,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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Mailersend
4
- VERSION = '1.0.1'
4
+ VERSION = '1.1.0'
5
5
  end
data/lib/mailersend.rb CHANGED
@@ -7,8 +7,10 @@ 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/inbound_routing/inbound_routing'
10
11
  require_relative 'mailersend/messages/messages'
11
12
  require_relative 'mailersend/recipients/recipients'
13
+ require_relative 'mailersend/scheduled_messages/scheduled_messages'
12
14
  require_relative 'mailersend/suppressions/suppressions'
13
15
  require_relative 'mailersend/templates/templates'
14
16
  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.1.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-02-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -138,8 +138,10 @@ files:
138
138
  - lib/mailersend/client.rb
139
139
  - lib/mailersend/domains/domains.rb
140
140
  - lib/mailersend/email/email.rb
141
+ - lib/mailersend/inbound_routing/inbound_routing.rb
141
142
  - lib/mailersend/messages/messages.rb
142
143
  - lib/mailersend/recipients/recipients.rb
144
+ - lib/mailersend/scheduled_messages/scheduled_messages.rb
143
145
  - lib/mailersend/suppressions/suppressions.rb
144
146
  - lib/mailersend/templates/templates.rb
145
147
  - lib/mailersend/tokens/tokens.rb