From dca446291ef64cc4c8b154915eb7e456aaf87d93 Mon Sep 17 00:00:00 2001 From: juanhiginio Date: Tue, 15 Jul 2025 18:03:57 -0500 Subject: [PATCH 1/4] refactor: Refactor client to meet the needs of the implementation to be performed --- lib/bas/utils/operaton/process_client.rb | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/lib/bas/utils/operaton/process_client.rb b/lib/bas/utils/operaton/process_client.rb index 96cbdad..95e43e1 100644 --- a/lib/bas/utils/operaton/process_client.rb +++ b/lib/bas/utils/operaton/process_client.rb @@ -47,9 +47,7 @@ def instance_with_business_key_exists?(process_key, business_key) response.any? { |instance| instance["businessKey"] == business_key } end - def start_process_instance_by_key(process_key, business_key:, variables: {}, validate_business_key: true) - validate_uniqueness!(process_key, business_key) if validate_business_key - + def start_process_instance_by_key(process_key, business_key:, variables: {}) json_payload = { businessKey: business_key, variables: format_variables(variables) @@ -72,12 +70,6 @@ def build_conn f.adapter Faraday.default_adapter end end - - def validate_uniqueness!(process_key, business_key) - return unless instance_with_business_key_exists?(process_key, business_key) - - raise "There is already an instance for processing '#{process_key}' with business key '#{business_key}'" - end end end end From b87f25b15decff0c17ad01507d80051e4103469b Mon Sep 17 00:00:00 2001 From: juanhiginio Date: Tue, 15 Jul 2025 18:27:28 -0500 Subject: [PATCH 2/4] test: Refactoring tests for consistency with changes in the client --- spec/bas/operaton/process_client_spec.rb | 22 +--------------------- 1 file changed, 1 insertion(+), 21 deletions(-) diff --git a/spec/bas/operaton/process_client_spec.rb b/spec/bas/operaton/process_client_spec.rb index 3531597..31b95d8 100644 --- a/spec/bas/operaton/process_client_spec.rb +++ b/spec/bas/operaton/process_client_spec.rb @@ -79,30 +79,10 @@ [200, { "Content-Type" => "application/json" }, '{"id": "inst1"}'] end - allow(client).to receive(:instance_with_business_key_exists?).and_return(false) - response = client.start_process_instance_by_key(process_key, business_key: business_key, variables: { amount: 100 }) expect(response).to eq({ "id" => "inst1" }) end - - it "raises an error if business key already exists and validation is on" do - allow(client).to receive(:instance_with_business_key_exists?).with(process_key, business_key).and_return(true) - - expect do - client.start_process_instance_by_key(process_key, business_key: business_key, validate_business_key: true) - end.to raise_error("There is already an instance for processing 'my-process' with business key 'biz-123'") - end - - it "does not raise an error if business key exists and validation is off" do - stubs.post("#{base_url}/process-definition/key/#{process_key}/start") do - [200, { "Content-Type" => "application/json" }, '{"id": "inst2"}'] - end - - expect(client).not_to receive(:instance_with_business_key_exists?) - - client.start_process_instance_by_key(process_key, business_key: business_key, validate_business_key: false) - end end describe "#instance_with_business_key_exists?" do @@ -125,4 +105,4 @@ expect(client.instance_with_business_key_exists?(process_key, business_key)).to be false end end -end +end \ No newline at end of file From bc9868d89d17066504a8c6a185e2abc905b81054 Mon Sep 17 00:00:00 2001 From: juanhiginio Date: Tue, 15 Jul 2025 18:30:01 -0500 Subject: [PATCH 3/4] refactor: Apply rubocop suggestions --- spec/bas/operaton/process_client_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/bas/operaton/process_client_spec.rb b/spec/bas/operaton/process_client_spec.rb index 31b95d8..34e98ca 100644 --- a/spec/bas/operaton/process_client_spec.rb +++ b/spec/bas/operaton/process_client_spec.rb @@ -105,4 +105,4 @@ expect(client.instance_with_business_key_exists?(process_key, business_key)).to be false end end -end \ No newline at end of file +end From 2bae1a8de08342afd9de3e71b32013cfef4ba51d Mon Sep 17 00:00:00 2001 From: juanhiginio Date: Tue, 15 Jul 2025 18:50:31 -0500 Subject: [PATCH 4/4] refactor: Implement query parameters for business key query of processes parameter active:true --- lib/bas/utils/operaton/process_client.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/bas/utils/operaton/process_client.rb b/lib/bas/utils/operaton/process_client.rb index 95e43e1..8382633 100644 --- a/lib/bas/utils/operaton/process_client.rb +++ b/lib/bas/utils/operaton/process_client.rb @@ -40,7 +40,8 @@ def deploy_process(file_path, deployment_name:) def instance_with_business_key_exists?(process_key, business_key) query_params = { processDefinitionKey: process_key, - maxResults: 50 + maxResults: 50, + active: true } response = get("/history/process-instance", query_params)