fix(ruby): Detect content-type in form-data file upload using faraday (#17851) (#17853)

* fix(ruby): Detect content-type in form-data file upload using faraday (#17851)

* Update samples

* Add needed dependency libmagic-dev into node 1 setup of Circle Parallel CI

* After merge/pull last master + regeneration of samples
This commit is contained in:
dvacca-onfido 2024-02-14 14:14:01 +01:00 committed by GitHub
parent 7d2e8b1278
commit 9deeb608e6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 13 additions and 7 deletions

View File

@ -13,7 +13,7 @@ if [ "$NODE_INDEX" = "1" ]; then
echo "Running node $NODE_INDEX ..." echo "Running node $NODE_INDEX ..."
java -version java -version
sudo apt-get -y install cpanminus sudo apt-get -y install cpanminus libmagic-dev
(cd samples/client/petstore/perl && /bin/bash ./test.bash) (cd samples/client/petstore/perl && /bin/bash ./test.bash)
(cd samples/client/petstore/ruby && mvn integration-test) (cd samples/client/petstore/ruby && mvn integration-test)

View File

@ -13,6 +13,7 @@ require 'typhoeus'
{{#isFaraday}} {{#isFaraday}}
require 'faraday' require 'faraday'
require 'faraday/multipart' if Gem::Version.new(Faraday::VERSION) >= Gem::Version.new('2.0') require 'faraday/multipart' if Gem::Version.new(Faraday::VERSION) >= Gem::Version.new('2.0')
require 'filemagic'
{{/isFaraday}} {{/isFaraday}}
{{#isHttpx}} {{#isHttpx}}
require 'httpx' require 'httpx'

View File

@ -94,8 +94,8 @@
form_params.each do |key, value| form_params.each do |key, value|
case value case value
when ::File, ::Tempfile when ::File, ::Tempfile
# TODO hardcode to application/octet-stream, need better way to detect content type filemagic = FileMagic.new(FileMagic::MAGIC_MIME)
data[key] = Faraday::FilePart.new(value.path, 'application/octet-stream', value.path) data[key] = Faraday::FilePart.new(value.path, filemagic.file(value.path, true))
when ::Array, nil when ::Array, nil
# let Faraday handle Array and nil parameters # let Faraday handle Array and nil parameters
data[key] = value data[key] = value

View File

@ -23,6 +23,7 @@ Gem::Specification.new do |s|
{{#isFaraday}} {{#isFaraday}}
s.add_runtime_dependency 'faraday', '>= 1.0.1', '< 3.0' s.add_runtime_dependency 'faraday', '>= 1.0.1', '< 3.0'
s.add_runtime_dependency 'faraday-multipart' s.add_runtime_dependency 'faraday-multipart'
s.add_runtime_dependency 'ruby-filemagic'
{{/isFaraday}} {{/isFaraday}}
{{#isTyphoeus}} {{#isTyphoeus}}
s.add_runtime_dependency 'typhoeus', '~> 1.0', '>= 1.0.1' s.add_runtime_dependency 'typhoeus', '~> 1.0', '>= 1.0.1'

View File

@ -17,6 +17,7 @@ require 'tempfile'
require 'time' require 'time'
require 'faraday' require 'faraday'
require 'faraday/multipart' if Gem::Version.new(Faraday::VERSION) >= Gem::Version.new('2.0') require 'faraday/multipart' if Gem::Version.new(Faraday::VERSION) >= Gem::Version.new('2.0')
require 'filemagic'
module OpenapiClient module OpenapiClient
@ -140,8 +141,8 @@ module OpenapiClient
form_params.each do |key, value| form_params.each do |key, value|
case value case value
when ::File, ::Tempfile when ::File, ::Tempfile
# TODO hardcode to application/octet-stream, need better way to detect content type filemagic = FileMagic.new(FileMagic::MAGIC_MIME)
data[key] = Faraday::FilePart.new(value.path, 'application/octet-stream', value.path) data[key] = Faraday::FilePart.new(value.path, filemagic.file(value.path, true))
when ::Array, nil when ::Array, nil
# let Faraday handle Array and nil parameters # let Faraday handle Array and nil parameters
data[key] = value data[key] = value

View File

@ -30,6 +30,7 @@ Gem::Specification.new do |s|
s.add_runtime_dependency 'faraday', '>= 1.0.1', '< 3.0' s.add_runtime_dependency 'faraday', '>= 1.0.1', '< 3.0'
s.add_runtime_dependency 'faraday-multipart' s.add_runtime_dependency 'faraday-multipart'
s.add_runtime_dependency 'ruby-filemagic'
s.add_development_dependency 'rspec', '~> 3.6', '>= 3.6.0' s.add_development_dependency 'rspec', '~> 3.6', '>= 3.6.0'

View File

@ -17,6 +17,7 @@ require 'tempfile'
require 'time' require 'time'
require 'faraday' require 'faraday'
require 'faraday/multipart' if Gem::Version.new(Faraday::VERSION) >= Gem::Version.new('2.0') require 'faraday/multipart' if Gem::Version.new(Faraday::VERSION) >= Gem::Version.new('2.0')
require 'filemagic'
module Petstore module Petstore
@ -140,8 +141,8 @@ module Petstore
form_params.each do |key, value| form_params.each do |key, value|
case value case value
when ::File, ::Tempfile when ::File, ::Tempfile
# TODO hardcode to application/octet-stream, need better way to detect content type filemagic = FileMagic.new(FileMagic::MAGIC_MIME)
data[key] = Faraday::FilePart.new(value.path, 'application/octet-stream', value.path) data[key] = Faraday::FilePart.new(value.path, filemagic.file(value.path, true))
when ::Array, nil when ::Array, nil
# let Faraday handle Array and nil parameters # let Faraday handle Array and nil parameters
data[key] = value data[key] = value

View File

@ -30,6 +30,7 @@ Gem::Specification.new do |s|
s.add_runtime_dependency 'faraday', '>= 1.0.1', '< 3.0' s.add_runtime_dependency 'faraday', '>= 1.0.1', '< 3.0'
s.add_runtime_dependency 'faraday-multipart' s.add_runtime_dependency 'faraday-multipart'
s.add_runtime_dependency 'ruby-filemagic'
s.add_development_dependency 'rspec', '~> 3.6', '>= 3.6.0' s.add_development_dependency 'rspec', '~> 3.6', '>= 3.6.0'