From 7e45c8bee84887a69d7e7742cd994853be09f564 Mon Sep 17 00:00:00 2001 From: Vinay Vasudevamurthy Date: Tue, 25 Apr 2023 14:06:52 -0500 Subject: [PATCH] support programName. --- lib/mrkt/concerns/crud_leads.rb | 6 ++++-- spec/concerns/crud_leads_spec.rb | 27 +++++++++++++++++++++++++++ 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/lib/mrkt/concerns/crud_leads.rb b/lib/mrkt/concerns/crud_leads.rb index 8983a6d..edb941e 100644 --- a/lib/mrkt/concerns/crud_leads.rb +++ b/lib/mrkt/concerns/crud_leads.rb @@ -23,7 +23,8 @@ def get_leads(filter_type, filter_values, fields: nil, batch_size: nil, next_pag get('/rest/v1/leads.json', params, optional) end - def createupdate_leads(leads, action: 'createOrUpdate', lookup_field: nil, partition_name: nil, async_processing: nil) + def createupdate_leads(leads, action: 'createOrUpdate', lookup_field: nil, partition_name: nil, async_processing: nil, + program_name: nil) post_json('/rest/v1/leads.json') do params = { action: action, @@ -33,7 +34,8 @@ def createupdate_leads(leads, action: 'createOrUpdate', lookup_field: nil, parti optional = { lookupField: lookup_field, partitionName: partition_name, - asyncProcessing: async_processing + asyncProcessing: async_processing, + programName: program_name # listed as optional so as to not break existing consumers of the gem. } merge_params(params, optional) diff --git a/spec/concerns/crud_leads_spec.rb b/spec/concerns/crud_leads_spec.rb index cf6da37..dee2379 100644 --- a/spec/concerns/crud_leads_spec.rb +++ b/spec/concerns/crud_leads_spec.rb @@ -129,6 +129,33 @@ end it { is_expected.to eq(response_stub) } + + context 'with programName' do + subject { client.createupdate_leads(leads, lookup_field: :email, program_name: 'programNameTest') } + + let(:request_body) do + { + action: 'createOrUpdate', + input: [ + { + firstName: 'John', + lastName: 'Snow', + email: 'sample@example.com' + } + ], + lookupField: 'email', + programName: 'programNameTest' + } + end + + before do + stub_request(:post, "https://#{host}/rest/v1/leads.json") + .with(json_stub(request_body)) + .to_return(json_stub(response_stub)) + end + + it { is_expected.to eq(response_stub) } + end end describe '#delete_leads' do