Skip to content
Snippets Groups Projects
Verified Commit c1416393 authored by Alexander Olofsson's avatar Alexander Olofsson
Browse files

Handle search queries with multiple values per key

parent e7beb2c2
No related branches found
No related tags found
No related merge requests found
Pipeline #103789 passed
...@@ -87,8 +87,16 @@ module LiudeskCMDB ...@@ -87,8 +87,16 @@ module LiudeskCMDB
if query.is_a? Hash if query.is_a? Hash
op = query.delete(:op) { :and } op = query.delete(:op) { :and }
op = { or: ",", and: ";" }.fetch(op, ";") op = { or: ",", and: ";" }.fetch(op, ";")
query = query.transform_keys { |k| fields.key?(k) ? fields.dig(k, :name) : k } query = query.transform_keys { |k| fields.key?(k) ? fields.dig(k, :name) : k }
query = query.map { |k, v| "#{k}==#{v}" }.join(op) query = query.map do |k, v|
if v.is_a? Array
v.map { |val| "#{k}==#{val}" }.join(op)
else
"#{k}==#{v}"
end
end
query = query.reject { |v| v.nil? || v.empty? }.join(op)
end end
data = JSON.parse(client.get([api_url, "search"].join("/"), model_version, query: { query: query })) data = JSON.parse(client.get([api_url, "search"].join("/"), model_version, query: { query: query }))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment