soaspec 0.1.11 → 0.1.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2f8a71ef7aaaed332941f635ea0c8dae5635b2c7
4
- data.tar.gz: ace048d3a5dbd883c0523c6f2a5f654e51b486b6
3
+ metadata.gz: 8c021efb99c24b3ab3c9e20d17d9a6162dbc2000
4
+ data.tar.gz: 8a565f97656d00caaa5f3d55f17d76ef3d2e0966
5
5
  SHA512:
6
- metadata.gz: 13201679a589ce4856d1f9e61df09d25e8ec72242a1f4d2e8e781654e72c961c8a653555a6c3c7c9197e51b7d2643348ea0f5049115b2255b2546890db15a1b8
7
- data.tar.gz: 52962a53cb57f808154936718de1aab8a0a30b2488e5cf2bf302e9f6c62caf8b58590c1be4832089221fcd60fd385f0bf9b490cd018a53315b9a1d2f5445d848
6
+ metadata.gz: 29afe2d8539a57f203330bc5a869648dbfa018c27aba144af9d5343a592c74591c0d07cec5c22439d5286200a01d27ecd4fbee6b646aa8145a434950f8b7ff5b
7
+ data.tar.gz: eec926fd442193365280f711ed49d705dfa6b29de63cb18714af7101b5d9c1b469d73586d5c775dea9135eb02f077b7224d7a9dbedf5aedade90fb2549bdcc3f
data/ChangeLog CHANGED
@@ -1,3 +1,7 @@
1
+ Version 0.1.12
2
+ * Enhancements
3
+ * Add 'refresh_token' attribute to Soaspec::OAuth2 class so that token can be retrieved once and then stored
4
+
1
5
  Version 0.1.11
2
6
  * Enhancements
3
7
  * OAuth2 class can be initialized with strings as keys
@@ -13,13 +13,18 @@ module Soaspec
13
13
  # Will create access_token method based on passed parameters
14
14
  # @param [Hash] params Params client_id: nil, client_secret: nil, token_url: nil, username: nil, password: nil, security_token: nil
15
15
  def oauth2(params)
16
+ # Object to handle oauth2
17
+ define_method('oauth_obj') do
18
+ OAuth2.new(params, api_username)
19
+ end
20
+
16
21
  # Method to send request to get oauth token based on parameters
17
22
  define_method('oauth_response') do
18
- OAuth2.new(params, api_username).response
23
+ oauth_obj.response
19
24
  end
20
25
 
21
26
  define_method('access_token') do
22
- oauth_response['access_token']
27
+ oauth_obj.access_token
23
28
  end
24
29
 
25
30
  define_method('instance_url') do
@@ -3,14 +3,25 @@ require 'erb'
3
3
  module Soaspec
4
4
  # Handles working with OAuth2
5
5
  class OAuth2
6
+ # How often to refresh access token
7
+ @refresh_token = :always
8
+ # List of access tokens. They are mapped according to the OAuth parameters used
9
+ @access_tokens = {}
6
10
  class << self
7
11
  # Default token url used across entire suite
8
12
  attr_accessor :token_url
13
+ # @attr [Symbol] refresh_token How often to refresh access token
14
+ # Values are:
15
+ # * :always - (Default) Request token from token url every time it is needed
16
+ # * :once - Request token once for the entire execution of the suite
17
+ attr_accessor :refresh_token
18
+ # @attr [Hash] access_tokens List of access tokens. They are mapped according to the OAuth parameters used
19
+ attr_accessor :access_tokens
9
20
  end
10
21
 
11
- # [Hash] OAuth parameters
22
+ # @attr [Hash] OAuth parameters
12
23
  attr_accessor :params
13
- # Count of tries to obtain access token
24
+ # @attr [Integer] Count of tries to obtain access token
14
25
  attr_accessor :retry_count
15
26
 
16
27
  # @param [Hash] params_sent Parameters to make OAuth request
@@ -28,12 +39,22 @@ module Soaspec
28
39
  Soaspec::SpecLogger.info request_message
29
40
  end
30
41
 
42
+ # @return [String] Existing or new access token, dependent on refresh_token attribute
43
+ def access_token
44
+ case Soaspec::OAuth2.refresh_token
45
+ when :once
46
+ Soaspec::OAuth2.access_tokens[params] ||= response['access_token']
47
+ else # Default is :always
48
+ response['access_token']
49
+ end
50
+ end
51
+
31
52
  # @return [Hash] Hash containing access token parameters
32
53
  def response
54
+ Soaspec::SpecLogger.info "using oauth_params: #{params}" if Soaspec.debug_oauth?
33
55
  response = RestClient.post(params[:token_url], payload, cache_control: 'no_cache', verify_ssl: false)
34
56
  rescue RestClient::Exception => error
35
57
  Soaspec::SpecLogger.info(["oauth_error: #{error.message}", "oauth_response: #{error.response}"])
36
- Soaspec::SpecLogger.info "oauth_params_used: #{params}" if Soaspec.debug_oauth?
37
58
  self.retry_count += 1
38
59
  sleep 0.1 # Wait if a bit before retying obtaining access token
39
60
  retry if retry_count < 3
@@ -1,3 +1,3 @@
1
1
  module Soaspec
2
- VERSION = '0.1.11'.freeze
2
+ VERSION = '0.1.12'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: soaspec
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.11
4
+ version: 0.1.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - SamuelGarrattIQA
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-10-24 00:00:00.000000000 Z
11
+ date: 2018-10-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler