diff --git a/lib/ontologies_api_client/models/class.rb b/lib/ontologies_api_client/models/class.rb index 98b0403..f17c818 100644 --- a/lib/ontologies_api_client/models/class.rb +++ b/lib/ontologies_api_client/models/class.rb @@ -73,10 +73,16 @@ def self.search(*args) raise ArgumentError, "You must provide a search query: Class.search(query: 'melanoma')" if query.nil? || !query.is_a?(String) - if params[:federate] - federated_get(params) do |url| + if params[:federate] || params[:portals] + search_result = federated_get(params) do |url| "#{url}/search" end + + merged_collections = [] + search_result.each do |result| + merged_collections.concat(result.collection) + end + merged_collections else HTTP.get("/search", params) end diff --git a/lib/ontologies_api_client/request_federation.rb b/lib/ontologies_api_client/request_federation.rb index a51fe9e..7b37c4a 100644 --- a/lib/ontologies_api_client/request_federation.rb +++ b/lib/ontologies_api_client/request_federation.rb @@ -20,19 +20,10 @@ def federated_get(params = {}, &link) end end - connections = params[:is_collection] ? merge_collections(connections) : connections.flatten - - connections + connections.flatten end - def merge_collections(connections) - merged_collections = [] - connections.each do |connection| - merged_collections.concat(connection.collection) - end - merged_collections - end def request_portals(params = {}) federate = params.delete(:federate) || ::RequestStore.store[:federated_portals] diff --git a/ontologies_api_client.gemspec b/ontologies_api_client.gemspec index b2ae8c2..4353422 100644 --- a/ontologies_api_client.gemspec +++ b/ontologies_api_client.gemspec @@ -12,7 +12,7 @@ Gem::Specification.new do |gem| gem.require_paths = ["lib"] gem.version = "2.2.0" - gem.add_dependency('activesupport', '~> 7.0.4') + gem.add_dependency('activesupport', '~> 7.0.3') gem.add_dependency('excon') gem.add_dependency('faraday') gem.add_dependency('faraday-excon', '~> 2.0.0')