resend 0.7.1 → 0.8.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 +4 -4
- data/lib/resend/batch.rb +16 -0
- data/lib/resend/client.rb +1 -0
- data/lib/resend/mailer.rb +48 -4
- data/lib/resend/version.rb +1 -1
- metadata +7 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9d47b8d94ca889992ecef9e04d771fc16674236acc93c07d3dcd849bc5d5b2fe
|
4
|
+
data.tar.gz: 637a2eedb36475746c7c8494ae657ee78ab567be7d2864e3b63c97bbdb5d797c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3307b328674d55b133822f6837662615d88c8f4f5b6ae5c4d3467ba0fc1538d5dcf26873dd8584128ff2a1e6ef908d9bf5dec3e0e2534988f8dcc2bba13f75ce
|
7
|
+
data.tar.gz: 4215c88a8db32f51cf076c56e0a69c1f1b9313b242425c039c16a8e30a7e78ac5f7dcd2369f5c41919976c65403557fba126d81348a9192f7a449b5b9ee9fa09
|
data/lib/resend/batch.rb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "resend/request"
|
4
|
+
|
5
|
+
module Resend
|
6
|
+
# Module responsible for wrapping Batch email sending API
|
7
|
+
module Batch
|
8
|
+
class << self
|
9
|
+
# https://resend.com/docs/api-reference/emails/send-batch-emails
|
10
|
+
def send(params = [])
|
11
|
+
path = "emails/batch"
|
12
|
+
Resend::Request.new(path, params, "post").perform
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
data/lib/resend/client.rb
CHANGED
data/lib/resend/mailer.rb
CHANGED
@@ -15,6 +15,13 @@ module Resend
|
|
15
15
|
@settings = { return_response: true }
|
16
16
|
end
|
17
17
|
|
18
|
+
#
|
19
|
+
# Overwritten deliver! method
|
20
|
+
#
|
21
|
+
# @param Mail mail
|
22
|
+
#
|
23
|
+
# @return Object resend response
|
24
|
+
#
|
18
25
|
def deliver!(mail)
|
19
26
|
params = build_resend_params(mail)
|
20
27
|
resp = Resend::Emails.send(params)
|
@@ -22,10 +29,16 @@ module Resend
|
|
22
29
|
resp
|
23
30
|
end
|
24
31
|
|
32
|
+
#
|
25
33
|
# Builds the payload for sending
|
34
|
+
#
|
35
|
+
# @param Mail mail rails mail object
|
36
|
+
#
|
37
|
+
# @return Hash hash with all Resend params
|
38
|
+
#
|
26
39
|
def build_resend_params(mail)
|
27
40
|
params = {
|
28
|
-
from: get_from(mail
|
41
|
+
from: get_from(mail),
|
29
42
|
to: mail.to,
|
30
43
|
subject: mail.subject
|
31
44
|
}
|
@@ -36,14 +49,26 @@ module Resend
|
|
36
49
|
params
|
37
50
|
end
|
38
51
|
|
52
|
+
#
|
39
53
|
# Add custom headers fields
|
54
|
+
#
|
55
|
+
# @param Mail mail Rails Mail object
|
56
|
+
#
|
57
|
+
# @return Hash hash with headers param
|
58
|
+
#
|
40
59
|
def get_headers(mail)
|
41
60
|
params = {}
|
42
61
|
params[:headers] = mail[:headers].unparsed_value if mail[:headers].present?
|
43
62
|
params
|
44
63
|
end
|
45
64
|
|
65
|
+
#
|
46
66
|
# Add cc, bcc, reply_to fields
|
67
|
+
#
|
68
|
+
# @param Mail mail Rails Mail Object
|
69
|
+
#
|
70
|
+
# @return Hash hash containing cc/bcc/reply_to attrs
|
71
|
+
#
|
47
72
|
def get_addons(mail)
|
48
73
|
params = {}
|
49
74
|
params[:cc] = mail.cc if mail.cc.present?
|
@@ -52,7 +77,13 @@ module Resend
|
|
52
77
|
params
|
53
78
|
end
|
54
79
|
|
80
|
+
#
|
55
81
|
# Gets the body of the email
|
82
|
+
#
|
83
|
+
# @param Mail mail Rails Mail Object
|
84
|
+
#
|
85
|
+
# @return Hash hash containing html/text or both attrs
|
86
|
+
#
|
56
87
|
def get_contents(mail)
|
57
88
|
params = {}
|
58
89
|
case mail.mime_type
|
@@ -67,14 +98,27 @@ module Resend
|
|
67
98
|
params
|
68
99
|
end
|
69
100
|
|
70
|
-
#
|
101
|
+
#
|
102
|
+
# Properly gets the `from` attr
|
103
|
+
#
|
104
|
+
# @param Mail input object
|
105
|
+
#
|
106
|
+
# @return String `from` string
|
107
|
+
#
|
71
108
|
def get_from(input)
|
72
|
-
return input.first if input.
|
109
|
+
return input.from.first if input[:from].nil?
|
73
110
|
|
74
|
-
input
|
111
|
+
from = input[:from].formatted
|
112
|
+
return from.first if from.is_a? Array
|
113
|
+
|
114
|
+
from.to_s
|
75
115
|
end
|
76
116
|
|
117
|
+
#
|
77
118
|
# Handle attachments when present
|
119
|
+
#
|
120
|
+
# @return Array attachments array
|
121
|
+
#
|
78
122
|
def get_attachments(mail)
|
79
123
|
attachments = []
|
80
124
|
mail.attachments.each do |part|
|
data/lib/resend/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: resend
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Derich Pacheco
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-10-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|
@@ -38,7 +38,7 @@ dependencies:
|
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
|
-
description:
|
41
|
+
description:
|
42
42
|
email: carlosderich@gmail.com
|
43
43
|
executables: []
|
44
44
|
extensions: []
|
@@ -47,6 +47,7 @@ files:
|
|
47
47
|
- README.md
|
48
48
|
- lib/resend.rb
|
49
49
|
- lib/resend/api_keys.rb
|
50
|
+
- lib/resend/batch.rb
|
50
51
|
- lib/resend/client.rb
|
51
52
|
- lib/resend/domains.rb
|
52
53
|
- lib/resend/emails.rb
|
@@ -59,7 +60,7 @@ homepage: https://github.com/resendlabs/resend-ruby
|
|
59
60
|
licenses:
|
60
61
|
- MIT
|
61
62
|
metadata: {}
|
62
|
-
post_install_message:
|
63
|
+
post_install_message:
|
63
64
|
rdoc_options: []
|
64
65
|
require_paths:
|
65
66
|
- lib
|
@@ -75,7 +76,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
75
76
|
version: '0'
|
76
77
|
requirements: []
|
77
78
|
rubygems_version: 3.3.7
|
78
|
-
signing_key:
|
79
|
+
signing_key:
|
79
80
|
specification_version: 4
|
80
81
|
summary: The Ruby and Rails SDK for resend.com
|
81
82
|
test_files: []
|