Skip to content

Commit 1fbb5d2

Browse files
Merge branch 'main' into TW-3564-ruby-sdk-add-support-for-private-configuration
2 parents 6a97bdc + 3677a0b commit 1fbb5d2

2 files changed

Lines changed: 15 additions & 1 deletion

File tree

lib/nylas/utils/file_utils.rb

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,13 @@ def self.build_form_request(request_body)
3636
file = File.open(attachment[:file_path], "rb")
3737
end
3838

39+
# Setting original filename and content type if available. See rest-client#lib/restclient/payload.rb
40+
filename = attachment[:filename] || attachment["filename"]
41+
file.define_singleton_method(:original_filename) { filename } if filename
42+
43+
content_type = attachment[:content_type] || attachment["content_type"]
44+
file.define_singleton_method(:content_type) { content_type } if content_type
45+
3946
form_data.merge!({ "file#{index}" => file })
4047
opened_files << file
4148
end

spec/nylas/utils/file_utils_spec.rb

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,12 @@
192192
let(:mock_file) { instance_double("file") }
193193

194194
it "returns form data when attachment size is greater than 3MB" do
195-
large_attachment = { size: 4 * 1024 * 1024, content: mock_file }
195+
large_attachment = {
196+
size: 4 * 1024 * 1024,
197+
content: mock_file,
198+
filename: "file.txt",
199+
content_type: "text/plain"
200+
}
196201
request_body = { attachments: [large_attachment] }
197202

198203
allow(mock_file).to receive(:read).and_return("file content")
@@ -202,6 +207,8 @@
202207

203208
expect(payload).to include("multipart" => true)
204209
expect(opened_files).to include(mock_file)
210+
expect(mock_file.original_filename).to eq("file.txt")
211+
expect(mock_file.content_type).to eq("text/plain")
205212
end
206213

207214
it "returns json data when attachment size is less than 3MB" do

0 commit comments

Comments
 (0)