From ae8a9cd11a3066dcea7b12418dd4b39baa301b6e Mon Sep 17 00:00:00 2001 From: narayana Date: Mon, 11 Sep 2023 10:59:51 +0530 Subject: [PATCH 1/8] campaign import support --- lib/plivo/resources/campaign.rb | 16 +++++++++++++++- spec/mocks/campaignImportResponse.json | 5 +++++ spec/resource_campaign_spec.rb | 19 +++++++++++++++++++ 3 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 spec/mocks/campaignImportResponse.json diff --git a/lib/plivo/resources/campaign.rb b/lib/plivo/resources/campaign.rb index 38332eca..da658c50 100644 --- a/lib/plivo/resources/campaign.rb +++ b/lib/plivo/resources/campaign.rb @@ -38,6 +38,7 @@ def get(campaign_id) # @param [Hash] options # @option options [String] :brand # @option options [Status] :usecase + # @option options [String] :campaign_source # @option options [Status] :limit # @option options [Status] :offset # @return [Hash] @@ -45,7 +46,7 @@ def list(options=nil) return perform_list_without_object if options.nil? params = {} - %i[usecase brand limit offset].each do |param| + %i[usecase brand campaign_source limit offset].each do |param| if options.key?(param) && valid_param?(param, options[param], [String, Integer], true) params[param] = options[param] @@ -96,6 +97,19 @@ def update(campaign_id, options=nil) perform_action_with_identifier(action, 'POST', options) end ## + + #import campaign + def import(options=nil) + valid_param?(:options, options, Hash, true) + if not options[:campaign_id] + raise_invalid_request("campaign_id must be provided") + end + if not options[:campaign_alias] + raise_invalid_request("campaign_alias must be provided") + end + action = '/Import' + perform_action_with_identifier(action, 'POST', options) + end # campaign number link # def number_link(options=nil) diff --git a/spec/mocks/campaignImportResponse.json b/spec/mocks/campaignImportResponse.json new file mode 100644 index 00000000..950de304 --- /dev/null +++ b/spec/mocks/campaignImportResponse.json @@ -0,0 +1,5 @@ +{ + "api_id": "2c6c5e16-090a-11ed-bb48-0242ac110004", + "campaign_id": "C1QGYD1", + "message": "Request to import campaign was received and is being processed." +} \ No newline at end of file diff --git a/spec/resource_campaign_spec.rb b/spec/resource_campaign_spec.rb index ed1adc6d..6388aa3c 100644 --- a/spec/resource_campaign_spec.rb +++ b/spec/resource_campaign_spec.rb @@ -284,6 +284,25 @@ def to_json_delete(obj) method: 'DELETE', data: nil) end +it 'import campaign' do + contents = File.read(Dir.pwd + '/spec/mocks/campaignImportResponse.json') + mock(200, JSON.parse(contents)) + response = to_json(@api.campaign + .import("C1QGYD1", "plivo campaign" + ) + ) + + contents = JSON.parse(contents) + + expect(JSON.parse(response)) + .to eql(contents) + compare_requests(uri: '/v1/Account/MAXXXXXXXXXXXXXXXXXX/10dlc/Campaign/C1QGYD1/Import', + method: 'POST', + data: { + campaign_id: "C1QGYD1", + campaign_alias: "plivo campaign" + }) +end it 'delete campaign' do contents = File.read(Dir.pwd + '/spec/mocks/campaignDeleteResponse.json') mock(200, JSON.parse(contents)) From 56b851e32ede1bc1c303a9efe79b55258d3a88fc Mon Sep 17 00:00:00 2001 From: narayana Date: Mon, 11 Sep 2023 11:05:44 +0530 Subject: [PATCH 2/8] fix ut --- spec/resource_campaign_spec.rb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/spec/resource_campaign_spec.rb b/spec/resource_campaign_spec.rb index 6388aa3c..eada82f5 100644 --- a/spec/resource_campaign_spec.rb +++ b/spec/resource_campaign_spec.rb @@ -288,8 +288,7 @@ def to_json_delete(obj) contents = File.read(Dir.pwd + '/spec/mocks/campaignImportResponse.json') mock(200, JSON.parse(contents)) response = to_json(@api.campaign - .import("C1QGYD1", "plivo campaign" - ) + .import(options = {campaign_id:"C1QGYD1", campaign_alias:"plivo campaign"}) ) contents = JSON.parse(contents) From d34ad5c1a996c9ee1aefb4a080706f55fdee3a3f Mon Sep 17 00:00:00 2001 From: narayana Date: Mon, 11 Sep 2023 11:10:34 +0530 Subject: [PATCH 3/8] fix url --- spec/resource_campaign_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/resource_campaign_spec.rb b/spec/resource_campaign_spec.rb index eada82f5..177b1afc 100644 --- a/spec/resource_campaign_spec.rb +++ b/spec/resource_campaign_spec.rb @@ -295,7 +295,7 @@ def to_json_delete(obj) expect(JSON.parse(response)) .to eql(contents) - compare_requests(uri: '/v1/Account/MAXXXXXXXXXXXXXXXXXX/10dlc/Campaign/C1QGYD1/Import', + compare_requests(uri: '/v1/Account/MAXXXXXXXXXXXXXXXXXX/10dlc/Campaign/C1QGYD1/Import/', method: 'POST', data: { campaign_id: "C1QGYD1", From 5d3e57f3cd8cff53ac9fa3b704291ded851fc81b Mon Sep 17 00:00:00 2001 From: narayana Date: Mon, 11 Sep 2023 11:46:47 +0530 Subject: [PATCH 4/8] fix response --- spec/resource_campaign_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/resource_campaign_spec.rb b/spec/resource_campaign_spec.rb index 177b1afc..accad0f1 100644 --- a/spec/resource_campaign_spec.rb +++ b/spec/resource_campaign_spec.rb @@ -287,7 +287,7 @@ def to_json_delete(obj) it 'import campaign' do contents = File.read(Dir.pwd + '/spec/mocks/campaignImportResponse.json') mock(200, JSON.parse(contents)) - response = to_json(@api.campaign + response = to_json_create(@api.campaign .import(options = {campaign_id:"C1QGYD1", campaign_alias:"plivo campaign"}) ) From 93e2d39a857f321c0538bb3472be89d938139c3d Mon Sep 17 00:00:00 2001 From: narayana Date: Mon, 11 Sep 2023 11:49:20 +0530 Subject: [PATCH 5/8] fix --- spec/resource_campaign_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/resource_campaign_spec.rb b/spec/resource_campaign_spec.rb index accad0f1..9e59b7ac 100644 --- a/spec/resource_campaign_spec.rb +++ b/spec/resource_campaign_spec.rb @@ -295,7 +295,7 @@ def to_json_delete(obj) expect(JSON.parse(response)) .to eql(contents) - compare_requests(uri: '/v1/Account/MAXXXXXXXXXXXXXXXXXX/10dlc/Campaign/C1QGYD1/Import/', + compare_requests(uri: '/v1/Account/MAXXXXXXXXXXXXXXXXXX/10dlc/Campaign/Import/', method: 'POST', data: { campaign_id: "C1QGYD1", From 1734b83600348d1a374a7ae18a426709000a00c4 Mon Sep 17 00:00:00 2001 From: narayana Date: Mon, 11 Sep 2023 11:50:32 +0530 Subject: [PATCH 6/8] import campaign url fix --- lib/plivo/resources/campaign.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/plivo/resources/campaign.rb b/lib/plivo/resources/campaign.rb index da658c50..5178bb3b 100644 --- a/lib/plivo/resources/campaign.rb +++ b/lib/plivo/resources/campaign.rb @@ -107,7 +107,7 @@ def import(options=nil) if not options[:campaign_alias] raise_invalid_request("campaign_alias must be provided") end - action = '/Import' + action = 'Import' perform_action_with_identifier(action, 'POST', options) end # campaign number link From 88fb139cb369bc70eb426d309df90ad0d509ad5b Mon Sep 17 00:00:00 2001 From: narayana Date: Sun, 8 Oct 2023 15:42:24 +0530 Subject: [PATCH 7/8] brand_id fix --- lib/plivo/resources/campaign.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/plivo/resources/campaign.rb b/lib/plivo/resources/campaign.rb index 5178bb3b..8dd4a248 100644 --- a/lib/plivo/resources/campaign.rb +++ b/lib/plivo/resources/campaign.rb @@ -36,7 +36,7 @@ def get(campaign_id) ## # List all Campaign # @param [Hash] options - # @option options [String] :brand + # @option options [String] :brand_id # @option options [Status] :usecase # @option options [String] :campaign_source # @option options [Status] :limit @@ -46,7 +46,7 @@ def list(options=nil) return perform_list_without_object if options.nil? params = {} - %i[usecase brand campaign_source limit offset].each do |param| + %i[usecase brand_id campaign_source limit offset].each do |param| if options.key?(param) && valid_param?(param, options[param], [String, Integer], true) params[param] = options[param] From e35a2ad88d77b55fc40821624c2d1abe186e29b7 Mon Sep 17 00:00:00 2001 From: renoldthomas-plivo Date: Mon, 16 Oct 2023 18:42:17 +0530 Subject: [PATCH 8/8] version update --- CHANGELOG.md | 5 +++++ README.md | 2 +- lib/plivo/version.rb | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2bf0ed39..71891159 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Change Log +## [4.51.0](https://github.com/plivo/plivo-ruby/tree/v4.51.0) (2023-10-16) +**Introducing campaign_source & import partner camapign API** +- New field campaign_source introduced +- Import partner campaign API added + ## [4.50.0](https://github.com/plivo/plivo-ruby/tree/v4.50.0) (2023-10-13) **Feature - WhatsApp message support** - Added new params `template` and new message_type `whatsapp` to [send message API](https://www.plivo.com/docs/sms/api/message#send-a-message) diff --git a/README.md b/README.md index d6f9a7d2..9a401558 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ The Plivo Ruby SDK makes it simpler to integrate communications into your Ruby a Add this line to your application's Gemfile: ```ruby -gem 'plivo', '>= 4.50.0' +gem 'plivo', '>= 4.51.0' ``` And then execute: diff --git a/lib/plivo/version.rb b/lib/plivo/version.rb index 85e2245b..7c6fd03b 100644 --- a/lib/plivo/version.rb +++ b/lib/plivo/version.rb @@ -1,3 +1,3 @@ module Plivo - VERSION = "4.50.0".freeze + VERSION = "4.51.0".freeze end