From c14163936b56045789e8e1a27d0725a6d894d7b0 Mon Sep 17 00:00:00 2001
From: Alexander Olofsson <alexander.olofsson@liu.se>
Date: Fri, 8 Sep 2023 16:15:48 +0200
Subject: [PATCH] Handle search queries with multiple values per key

---
 lib/liudesk_cmdb/model.rb | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/lib/liudesk_cmdb/model.rb b/lib/liudesk_cmdb/model.rb
index 6f6e412..b4e0c3d 100644
--- a/lib/liudesk_cmdb/model.rb
+++ b/lib/liudesk_cmdb/model.rb
@@ -87,8 +87,16 @@ module LiudeskCMDB
         if query.is_a? Hash
           op = query.delete(:op) { :and }
           op = { or: ",", and: ";" }.fetch(op, ";")
+
           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
 
         data = JSON.parse(client.get([api_url, "search"].join("/"), model_version, query: { query: query }))
-- 
GitLab