resend 0.19.0 → 0.20.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/emails.rb +3 -3
- data/lib/resend/request.rb +14 -2
- data/lib/resend/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0b5349c47ad8289c343894fe33fac76d211ae9978f3b345f96acd872cd7273b8
|
4
|
+
data.tar.gz: 1428260d051c8ec44f90032de660d274511c51a89078abe748144e8bc7ee5358
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5930573ba4216644183433e4eeb2eb7b811507594030e251da1f44b33af50758a4009f5c2a390ba326eaccd5e3fbd0dee9a6f5ab5af0604ade24a8ab4bae7554
|
7
|
+
data.tar.gz: f8bf3707e3126e63d3fed39b78ccdca6cbfc8a04675e24b9c5623982e2f5a77bf08574065dec27a06047f6453f3858ce32357d80bf6c5c2d707167aeb0b571cc
|
data/lib/resend/emails.rb
CHANGED
@@ -5,10 +5,10 @@ module Resend
|
|
5
5
|
module Emails
|
6
6
|
class << self
|
7
7
|
# Sends or schedules an email.
|
8
|
-
# see more: https://resend.com/docs/api-reference/send-email
|
9
|
-
def send(params)
|
8
|
+
# see more: https://resend.com/docs/api-reference/emails/send-email
|
9
|
+
def send(params, options: {})
|
10
10
|
path = "emails"
|
11
|
-
Resend::Request.new(path, params, "post").perform
|
11
|
+
Resend::Request.new(path, params, "post", options: options).perform
|
12
12
|
end
|
13
13
|
|
14
14
|
# Retrieve a single email.
|
data/lib/resend/request.rb
CHANGED
@@ -6,9 +6,9 @@ module Resend
|
|
6
6
|
class Request
|
7
7
|
BASE_URL = ENV["RESEND_BASE_URL"] || "https://api.resend.com/"
|
8
8
|
|
9
|
-
attr_accessor :body, :verb
|
9
|
+
attr_accessor :body, :verb, :options
|
10
10
|
|
11
|
-
def initialize(path = "", body = {}, verb = "POST")
|
11
|
+
def initialize(path = "", body = {}, verb = "POST", options: {})
|
12
12
|
raise if (api_key = Resend.api_key).nil?
|
13
13
|
|
14
14
|
api_key = api_key.call if api_key.is_a?(Proc)
|
@@ -16,12 +16,15 @@ module Resend
|
|
16
16
|
@path = path
|
17
17
|
@body = body
|
18
18
|
@verb = verb
|
19
|
+
@options = options
|
19
20
|
@headers = {
|
20
21
|
"Content-Type" => "application/json",
|
21
22
|
"Accept" => "application/json",
|
22
23
|
"User-Agent" => "resend-ruby:#{Resend::VERSION}",
|
23
24
|
"Authorization" => "Bearer #{api_key}"
|
24
25
|
}
|
26
|
+
|
27
|
+
set_idempotency_key
|
25
28
|
end
|
26
29
|
|
27
30
|
# Performs the HTTP call
|
@@ -55,6 +58,15 @@ module Resend
|
|
55
58
|
|
56
59
|
private
|
57
60
|
|
61
|
+
def set_idempotency_key
|
62
|
+
# Only set idempotency key if the verb is POST for now.
|
63
|
+
#
|
64
|
+
# Does not set it if the idempotency_key is nil or empty
|
65
|
+
if @verb.downcase == "post" && (!@options[:idempotency_key].nil? && !@options[:idempotency_key].empty?)
|
66
|
+
@headers["Idempotency-Key"] = @options[:idempotency_key]
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
58
70
|
def check_json!(resp)
|
59
71
|
if resp.body.is_a?(Hash)
|
60
72
|
JSON.parse(resp.body.to_json)
|
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.20.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Derich Pacheco
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-
|
11
|
+
date: 2025-04-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|