Skip to content

Commit

Permalink
fix: send multi part data as arrays for image files and image urls
Browse files Browse the repository at this point in the history
  • Loading branch information
mamoonraja committed Oct 4, 2019
1 parent b9e3527 commit e05cc0c
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 6 deletions.
16 changes: 10 additions & 6 deletions lib/ibm_watson/visual_recognition_v4.rb
Original file line number Diff line number Diff line change
Expand Up @@ -119,16 +119,18 @@ def analyze(collection_ids:, features:, images_file: nil, image_url: nil, thresh

form_data[:features] = HTTP::FormData::Part.new(features.to_s, content_type: "text/plain")

form_data[:images_file] = []
images_file&.each do |item|
unless item[:data].instance_of?(StringIO) || item[:data].instance_of?(File)
item.data = item[:data].respond_to?(:to_json) ? StringIO.new(item[:data].to_json) : StringIO.new(item[:data])
item[:data] = item[:data].respond_to?(:to_json) ? StringIO.new(item[:data].to_json) : StringIO.new(item[:data])
end
item[:filename] = item[:data].path if item[:filename].nil? && item[:data].respond_to?(:path)
form_data[:images_file] = HTTP::FormData::File.new(item[:data], content_type: item[:content_type], filename: item[:filename])
form_data[:images_file].push(HTTP::FormData::File.new(item[:data], content_type: item[:content_type], filename: item[:filename]))
end

form_data[:image_url] = []
image_url&.each do |item|
form_data[:image_url] = HTTP::FormData::Part.new(item.to_s, content_type: "text/plain")
form_data[:image_url].push(HTTP::FormData::Part.new(item.to_s, content_type: "text/plain"))
end

form_data[:threshold] = HTTP::FormData::Part.new(threshold.to_s, content_type: "application/json") unless threshold.nil?
Expand Down Expand Up @@ -367,16 +369,18 @@ def add_images(collection_id:, images_file: nil, image_url: nil, training_data:

form_data = {}

form_data[:images_file] = []
images_file&.each do |item|
unless item[:data].instance_of?(StringIO) || item[:data].instance_of?(File)
item.data = item[:data].respond_to?(:to_json) ? StringIO.new(item[:data].to_json) : StringIO.new(item[:data])
item[:data] = item[:data].respond_to?(:to_json) ? StringIO.new(item[:data].to_json) : StringIO.new(item[:data])
end
item[:filename] = item[:data].path if item[:filename].nil? && item[:data].respond_to?(:path)
form_data[:images_file] = HTTP::FormData::File.new(item[:data], content_type: item[:content_type], filename: item[:filename])
form_data[:images_file].push(HTTP::FormData::File.new(item[:data], content_type: item[:content_type], filename: item[:filename]))
end

form_data[:image_url] = []
image_url&.each do |item|
form_data[:image_url] = HTTP::FormData::Part.new(item.to_s, content_type: "text/plain")
form_data[:image_url].push(HTTP::FormData::Part.new(item.to_s, content_type: "text/plain"))
end

form_data[:training_data] = HTTP::FormData::Part.new(training_data.to_s, content_type: "text/plain") unless training_data.nil?
Expand Down
1 change: 1 addition & 0 deletions test/integration/test_visual_recognition_v4.rb
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ def test_analyze
collection_ids: @collection_id,
features: "objects"
).result
assert_equal(result["images"].length, 2)
refute(result.nil?)
end

Expand Down

0 comments on commit e05cc0c

Please sign in to comment.