nylas 6.0.2 → 6.0.3
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/nylas/client.rb +1 -1
- data/lib/nylas/resources/auth.rb +4 -4
- data/lib/nylas/resources/drafts.rb +23 -4
- data/lib/nylas/resources/messages.rb +11 -2
- data/lib/nylas/utils/file_utils.rb +3 -0
- data/lib/nylas/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: 3bd6fdcadf69439f1f8a8549e26e3b43f4df3cfeb8ae0c5a2aef5aca8fb3acce
|
4
|
+
data.tar.gz: b1f939a98c16ec5bf390791df31bb0f76feb45af07e4e6bcfc32c52e79e3b53f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 591735adfae3cfefdbc513762eff603390779f14321a543bf0a2115f3a368f1b674175c6e5cbea9052b4e10db157d74a3cda80b74773b212bbda2e38fc25aea0
|
7
|
+
data.tar.gz: 17dc68c13af649f533d206a546a72cf45b508864f71d2daae1eb020f686ce5b79c39829d841dd919cc944cd038042f4075116a7a941c2f782b6ae127c35d63a8
|
data/lib/nylas/client.rb
CHANGED
data/lib/nylas/resources/auth.rb
CHANGED
@@ -118,7 +118,7 @@ module Nylas
|
|
118
118
|
# @return [String] Updated list of parameters, including those specific to admin
|
119
119
|
# consent.
|
120
120
|
def build_query_with_admin_consent(config)
|
121
|
-
params =
|
121
|
+
params = build_http_query(config)
|
122
122
|
|
123
123
|
# Appends new params specific for admin consent.
|
124
124
|
params[:provider] = "microsoft"
|
@@ -135,7 +135,7 @@ module Nylas
|
|
135
135
|
# @return [String] Updated list of encoded parameters, including those specific
|
136
136
|
# to PKCE.
|
137
137
|
def build_query_with_pkce(config, secret_hash)
|
138
|
-
params =
|
138
|
+
params = build_http_query(config)
|
139
139
|
|
140
140
|
# Appends new PKCE specific params.
|
141
141
|
params[:code_challenge_method] = "s256"
|
@@ -151,7 +151,7 @@ module Nylas
|
|
151
151
|
def url_auth_builder(config)
|
152
152
|
builder = URI.parse(api_uri)
|
153
153
|
builder.path = "/v3/connect/auth"
|
154
|
-
builder.query = URI.encode_www_form(
|
154
|
+
builder.query = URI.encode_www_form(build_http_query(config)).gsub(/\+/, "%20")
|
155
155
|
|
156
156
|
builder
|
157
157
|
end
|
@@ -160,7 +160,7 @@ module Nylas
|
|
160
160
|
#
|
161
161
|
# @param config [Hash] Configuration for the query.
|
162
162
|
# @return [Hash] List of parameters to encode in the query.
|
163
|
-
def
|
163
|
+
def build_http_query(config)
|
164
164
|
params = {
|
165
165
|
client_id: config[:client_id],
|
166
166
|
redirect_uri: config[:redirect_uri],
|
@@ -43,10 +43,20 @@ module Nylas
|
|
43
43
|
# you can use {FileUtils::attach_file_request_builder} to build each object attach.
|
44
44
|
# @return [Array(Hash, String)] The created draft and API Request ID.
|
45
45
|
def create(identifier:, request_body:)
|
46
|
-
|
46
|
+
payload = request_body
|
47
|
+
opened_files = []
|
48
|
+
|
49
|
+
# Use form data only if the attachment size is greater than 3mb
|
50
|
+
attachments = request_body[:attachments] || request_body["attachments"] || []
|
51
|
+
attachment_size = attachments&.sum { |attachment| attachment[:size] || 0 } || 0
|
52
|
+
|
53
|
+
if attachment_size >= FileUtils::FORM_DATA_ATTACHMENT_SIZE
|
54
|
+
payload, opened_files = FileUtils.build_form_request(request_body)
|
55
|
+
end
|
56
|
+
|
47
57
|
response = post(
|
48
58
|
path: "#{api_uri}/v3/grants/#{identifier}/drafts",
|
49
|
-
request_body:
|
59
|
+
request_body: payload
|
50
60
|
)
|
51
61
|
|
52
62
|
opened_files.each(&:close)
|
@@ -63,11 +73,20 @@ module Nylas
|
|
63
73
|
# you can use {FileUtils::attach_file_request_builder} to build each object attach.
|
64
74
|
# @return [Array(Hash, String)] The updated draft and API Request ID.
|
65
75
|
def update(identifier:, draft_id:, request_body:)
|
66
|
-
|
76
|
+
payload = request_body
|
77
|
+
opened_files = []
|
78
|
+
|
79
|
+
# Use form data only if the attachment size is greater than 3mb
|
80
|
+
attachments = request_body[:attachments] || request_body["attachments"] || []
|
81
|
+
attachment_size = attachments&.sum { |attachment| attachment[:size] || 0 } || 0
|
82
|
+
|
83
|
+
if attachment_size >= FileUtils::FORM_DATA_ATTACHMENT_SIZE
|
84
|
+
payload, opened_files = FileUtils.build_form_request(request_body)
|
85
|
+
end
|
67
86
|
|
68
87
|
response = put(
|
69
88
|
path: "#{api_uri}/v3/grants/#{identifier}/drafts/#{draft_id}",
|
70
|
-
request_body:
|
89
|
+
request_body: payload
|
71
90
|
)
|
72
91
|
|
73
92
|
opened_files.each(&:close)
|
@@ -79,11 +79,20 @@ module Nylas
|
|
79
79
|
# you can use {FileUtils::attach_file_request_builder} to build each object attach.
|
80
80
|
# @return [Array(Hash, String)] The sent message and the API Request ID.
|
81
81
|
def send(identifier:, request_body:)
|
82
|
-
|
82
|
+
payload = request_body
|
83
|
+
opened_files = []
|
84
|
+
|
85
|
+
# Use form data only if the attachment size is greater than 3mb
|
86
|
+
attachments = request_body[:attachments] || request_body["attachments"] || []
|
87
|
+
attachment_size = attachments&.sum { |attachment| attachment[:size] || 0 } || 0
|
88
|
+
|
89
|
+
if attachment_size >= FileUtils::FORM_DATA_ATTACHMENT_SIZE
|
90
|
+
payload, opened_files = FileUtils.build_form_request(request_body)
|
91
|
+
end
|
83
92
|
|
84
93
|
response = post(
|
85
94
|
path: "#{api_uri}/v3/grants/#{identifier}/messages/send",
|
86
|
-
request_body:
|
95
|
+
request_body: payload
|
87
96
|
)
|
88
97
|
|
89
98
|
opened_files.each(&:close)
|
@@ -5,6 +5,9 @@ require "mime/types"
|
|
5
5
|
module Nylas
|
6
6
|
# A collection of file-related utilities.
|
7
7
|
module FileUtils
|
8
|
+
# The maximum size of an attachment that can be sent using json
|
9
|
+
FORM_DATA_ATTACHMENT_SIZE = 3 * 1024 * 1024
|
10
|
+
|
8
11
|
# Build a form request for the API.
|
9
12
|
# @param request_body The values to create the message with.
|
10
13
|
# @return The form data to send to the API and the opened files.
|
data/lib/nylas/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nylas
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 6.0.
|
4
|
+
version: 6.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nylas, Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-03-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mime-types
|