bing_ads_ruby_sdk 1.3.0 → 1.3.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 89dc5300add7a826e0b81dde909dfa4fea569158cbc69262fc88df6aaa3be605
4
- data.tar.gz: f6532c9e322b4b3fdf152360f18c372e481dd192a17e3cb0f93832e3a162cfff
3
+ metadata.gz: e9352d8c5f77aca5732658f3bbf045528f8c813349430af4a9c05a69457df927
4
+ data.tar.gz: 14762060f02d65b3a9980d4a4b9cd988d46ef2a6163869ee1c1c443f085c4369
5
5
  SHA512:
6
- metadata.gz: 46ccf557939fcc6310d94e0db8747e9a597e7107f7ce4782892118c2515b8b264612cae449c5c6630df63dccb9308024d0c3b742672fb5731688925c916ee526
7
- data.tar.gz: 3edfd79352c1b33cb19e81115287c9b3e19722045660d887591e3b70345e88f831c3baca62fba50bfaaaaf055652996e006dbc7d46179619d5928cbf05ae984c
6
+ metadata.gz: f3b09a5a61f94c913e54f08ff6145f51c5849f6a743a5ace400d6ba381a639497cf459733b99285f0fe58a8062add0b7f1c0b5b4a949ff2467d81ce46e7e26c9
7
+ data.tar.gz: 1bc8e7c7c10e25b2a6d4201a692133c0fa317b0c70d5fb38961d3fecc2303dc9001e88c7e112dd5b076c21961f2a31388c4886aff07d075ba78e43f7e3e335da
@@ -21,7 +21,7 @@ Gem::Specification.new do |spec|
21
21
  spec.test_files = spec.files.grep(%r{^(spec)/})
22
22
  spec.require_paths = ["lib"]
23
23
 
24
- spec.add_runtime_dependency 'signet', '~> 0.8.1'
24
+ spec.add_runtime_dependency 'signet', '>= 0.8.1', '< 0.13.0'
25
25
  spec.add_runtime_dependency 'excon', '>= 0.62.0'
26
26
  spec.add_runtime_dependency 'lolsoap', '>=0.9.0'
27
27
 
data/changelog.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## V1.3.1 Release
2
+
3
+ - add client secret in signatures
4
+
1
5
  ## V1.3.0 Release
2
6
  Allow instrumentation of HTTP requests via ActiveSupport::Notifications
3
7
 
@@ -27,12 +27,14 @@ module BingAdsRubySdk
27
27
  environment: :production,
28
28
  developer_token:,
29
29
  client_id:,
30
- oauth_store:)
30
+ oauth_store:,
31
+ client_secret: nil)
31
32
  @version = version
32
33
  @environment = environment
33
34
  @header = Header.new(
34
35
  developer_token: developer_token,
35
36
  client_id: client_id,
37
+ client_secret: client_secret,
36
38
  store: oauth_store
37
39
  )
38
40
  end
@@ -6,9 +6,10 @@ module BingAdsRubySdk
6
6
  # @param developer_token
7
7
  # @param client_id
8
8
  # @param store instance of a store
9
- def initialize(developer_token:, client_id:, store:)
9
+ def initialize(developer_token:, client_id:, store:, client_secret: nil)
10
10
  @developer_token = developer_token
11
11
  @client_id = client_id
12
+ @client_secret = client_secret
12
13
  @oauth_store = store
13
14
  @customer = {}
14
15
  end
@@ -20,7 +21,9 @@ module BingAdsRubySdk
20
21
  "DeveloperToken" => developer_token,
21
22
  "CustomerId" => customer[:customer_id],
22
23
  "CustomerAccountId" => customer[:account_id]
23
- }
24
+ }.tap do |hash|
25
+ hash["ClientSecret"] = client_secret if client_secret
26
+ end
24
27
  end
25
28
 
26
29
  def set_customer(account_id:, customer_id:)
@@ -31,13 +34,14 @@ module BingAdsRubySdk
31
34
 
32
35
  private
33
36
 
34
- attr_reader :oauth_store, :developer_token, :client_id, :customer
37
+ attr_reader :oauth_store, :developer_token, :client_id, :customer, :client_secret
35
38
 
36
39
  def auth_handler
37
40
  @auth_handler ||= ::BingAdsRubySdk::OAuth2::AuthorizationHandler.new(
38
41
  developer_token: developer_token,
39
42
  client_id: client_id,
40
- store: oauth_store
43
+ store: oauth_store,
44
+ client_secret: client_secret
41
45
  )
42
46
  end
43
47
  end
@@ -9,8 +9,10 @@ module BingAdsRubySdk
9
9
  # @param developer_token
10
10
  # @param client_id
11
11
  # @param store [Store]
12
- def initialize(developer_token:, client_id:, store:)
13
- @client = build_client(developer_token, client_id)
12
+ def initialize(developer_token:, client_id:, store:, client_secret: nil)
13
+ @client = Signet::OAuth2::Client.new(
14
+ client_params(developer_token, client_id, client_secret)
15
+ )
14
16
  @store = store
15
17
  refresh_from_store
16
18
  end
@@ -73,15 +75,17 @@ module BingAdsRubySdk
73
75
  query_params.find { |arg| arg.first.casecmp("CODE").zero? }
74
76
  end
75
77
 
76
- def build_client(developer_token, client_id)
77
- Signet::OAuth2::Client.new({
78
+ def client_params(developer_token, client_id, client_secret)
79
+ {
78
80
  authorization_uri: 'https://login.microsoftonline.com/common/oauth2/v2.0/authorize',
79
81
  token_credential_uri: 'https://login.microsoftonline.com/common/oauth2/v2.0/token',
80
82
  redirect_uri: 'https://login.microsoftonline.com/common/oauth2/nativeclient',
81
83
  developer_token: developer_token,
82
84
  client_id: client_id,
83
85
  scope: 'offline_access'
84
- })
86
+ }.tap do |hash|
87
+ hash[:client_secret] = client_secret if client_secret
88
+ end
85
89
  end
86
90
 
87
91
  def token_data
@@ -23,6 +23,11 @@ module BingAdsRubySdk
23
23
  postprocess(response)
24
24
  end
25
25
 
26
+ def call_wrapper(action, message, *response_nesting)
27
+ response = call(action, message)
28
+ wrap_array(dig_response(response, response_nesting))
29
+ end
30
+
26
31
  def self.service
27
32
  raise 'implement me'
28
33
  end
@@ -31,11 +36,6 @@ module BingAdsRubySdk
31
36
 
32
37
  attr_reader :soap_client
33
38
 
34
- def call_wrapper(action, message, *response_nesting)
35
- response = call(action, message)
36
- wrap_array(dig_response(response, response_nesting))
37
- end
38
-
39
39
  def preprocess(message, operation_name)
40
40
  order(
41
41
  soap_client.wsdl_wrapper(operation_name),
@@ -80,4 +80,4 @@ module BingAdsRubySdk
80
80
  end
81
81
  end
82
82
  end
83
- end
83
+ end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module BingAdsRubySdk
4
- VERSION = '1.3.0'.freeze
4
+ VERSION = '1.3.1'.freeze
5
5
  DEFAULT_SDK_VERSION = :v13
6
6
  end
@@ -1,6 +1,14 @@
1
1
  RSpec.describe BingAdsRubySdk::Header do
2
2
  let(:oauth_store) { double(:oauth_store) }
3
- let(:subject) { described_class.new(developer_token: '123abc', client_id: '1a-2b-3c', store: oauth_store) }
3
+ let(:client_secret) { 'pa$$w0rd' }
4
+ let(:subject) do
5
+ described_class.new(
6
+ developer_token: '123abc',
7
+ client_id: '1a-2b-3c',
8
+ client_secret: client_secret,
9
+ store: oauth_store,
10
+ )
11
+ end
4
12
  let(:auth_handler) do
5
13
  double(:auth_handler, fetch_or_refresh: 'yes/we/can')
6
14
  end
@@ -9,6 +17,7 @@ RSpec.describe BingAdsRubySdk::Header do
9
17
  expect(::BingAdsRubySdk::OAuth2::AuthorizationHandler).to receive(:new).with(
10
18
  developer_token: '123abc',
11
19
  client_id: '1a-2b-3c',
20
+ client_secret: client_secret,
12
21
  store: oauth_store
13
22
  ).and_return auth_handler
14
23
  end
@@ -19,10 +28,23 @@ RSpec.describe BingAdsRubySdk::Header do
19
28
  "AuthenticationToken" => 'yes/we/can',
20
29
  "DeveloperToken" => '123abc',
21
30
  "CustomerId" => nil,
22
- "CustomerAccountId" => nil
31
+ "CustomerAccountId" => nil,
32
+ "ClientSecret" => client_secret
23
33
  )
24
34
  end
25
35
 
36
+ context "without client_secret" do
37
+ let(:client_secret) { nil }
38
+ it do
39
+ expect(subject.content).to eq(
40
+ "AuthenticationToken" => 'yes/we/can',
41
+ "DeveloperToken" => '123abc',
42
+ "CustomerId" => nil,
43
+ "CustomerAccountId" => nil
44
+ )
45
+ end
46
+ end
47
+
26
48
  it 'sets customer' do
27
49
  subject.set_customer(customer_id: 777, account_id: 666 )
28
50
 
@@ -30,7 +52,8 @@ RSpec.describe BingAdsRubySdk::Header do
30
52
  "AuthenticationToken" => 'yes/we/can',
31
53
  "DeveloperToken" => '123abc',
32
54
  "CustomerId" => 777,
33
- "CustomerAccountId" => 666
55
+ "CustomerAccountId" => 666,
56
+ "ClientSecret" => client_secret
34
57
  )
35
58
  end
36
59
  end
@@ -2,16 +2,18 @@ require 'dotenv/load'
2
2
 
3
3
  namespace :bing_token do
4
4
  desc "Gets and stores Bing OAuth token in file"
5
- task :get, [:filename, :bing_developer_token, :bing_client_id] do |task, args|
5
+ task :get, [:filename, :bing_developer_token, :bing_client_id, :bing_client_secret] do |task, args|
6
6
 
7
7
  filename = args[:filename] || ENV.fetch('BING_STORE_FILENAME')
8
8
  developer_token = args[:bing_developer_token] || ENV.fetch('BING_DEVELOPER_TOKEN')
9
9
  bing_client_id = args[:bing_client_id] || ENV.fetch('BING_CLIENT_ID')
10
+ bing_client_secret = args[:bing_client_secret] || ENV.fetch('BING_CLIENT_SECRET', nil)
10
11
 
11
12
  store = ::BingAdsRubySdk::OAuth2::FsStore.new(filename)
12
13
  auth = BingAdsRubySdk::OAuth2::AuthorizationHandler.new(
13
14
  developer_token: developer_token,
14
15
  client_id: bing_client_id,
16
+ client_secret: bing_client_secret,
15
17
  store: store
16
18
  )
17
19
  puts "Go to #{auth.code_url}",
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bing_ads_ruby_sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Effilab
@@ -9,22 +9,28 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2019-07-15 00:00:00.000000000 Z
12
+ date: 2020-04-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: signet
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - "~>"
18
+ - - ">="
19
19
  - !ruby/object:Gem::Version
20
20
  version: 0.8.1
21
+ - - "<"
22
+ - !ruby/object:Gem::Version
23
+ version: 0.13.0
21
24
  type: :runtime
22
25
  prerelease: false
23
26
  version_requirements: !ruby/object:Gem::Requirement
24
27
  requirements:
25
- - - "~>"
28
+ - - ">="
26
29
  - !ruby/object:Gem::Version
27
30
  version: 0.8.1
31
+ - - "<"
32
+ - !ruby/object:Gem::Version
33
+ version: 0.13.0
28
34
  - !ruby/object:Gem::Dependency
29
35
  name: excon
30
36
  requirement: !ruby/object:Gem::Requirement