homeaway-api 1.1.0 → 1.2.0

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: 87940e1ae0baa8fdae8331a9baad7b0db4d6436d
4
- data.tar.gz: 2f084f225ccc9b15a83e02771295ee4cb8e3a7eb
3
+ metadata.gz: 03191fa72b667f0ea2cfbbfb7898e8314888e572
4
+ data.tar.gz: 358c23be39110cde5a6c91a86d6513e9f91f6a86
5
5
  SHA512:
6
- metadata.gz: 04e32f37174e358729c67a2845382007d0ac4f8fddc28475604247f58e0d2590515d335289bf67b17cbcaa673900a298f769b4375600d61a5b638e9d48be505e
7
- data.tar.gz: ecc599039662e2b1d3df53a5c87609dafcebe3f02268a3b5db414c128ba777c47d9748be8c1dff3d15d7d8de7ee97a3e8b2e04013791b5f145888d95a6ebd75b
6
+ metadata.gz: fa63f013b0c56621c4fdd1e0f017213087cfedbcac22f59f1ae95e9de04bc0c012a13d3207d23e9f4a8684ea62f9182ff8be6a8549df920e835dde2c992a7bca
7
+ data.tar.gz: 4fab671b70eae3d34f52a808487f4141a7509dda0ecfc90e3a1ce99f2c674ee31ae9aa24ef8e68d549aa06b987438290734c5a72993f97c07931cc0848d19876
@@ -33,7 +33,7 @@ module HomeAway
33
33
  include HomeAway::API::Util::OAuth
34
34
 
35
35
  attr_accessor :configuration
36
- attr_reader :mode, :token, :token_expires
36
+ attr_reader :mode, :token, :token_expires, :refresh_token
37
37
 
38
38
  # @!attribute [rw] configuration
39
39
  # @return [Hash] the current client configuration
@@ -52,13 +52,14 @@ module HomeAway
52
52
  #
53
53
  # @option opts [String] :client_id Your HomeAway API OAuth client id. Required here if not set globally
54
54
  # @option opts [String] :client_secret Your HomeAway API OAuth client secret. Required here if not set globally
55
- # @option opts [String] :token An existing token if you already have one saved from a previous usage of the api
55
+ # @option opts [String] :refresh_token An existing token if you already have one saved from a previous usage of the api
56
56
  # @return [HomeAway::API::Client] a newly instantiated HomeAway API client
57
57
  def initialize(opts={})
58
58
  @configuration = Hashie::Mash.new(self.class.default_configuration.merge(opts))
59
- if opts.has_key?(:token)
59
+ if opts.has_key?(:refresh_token)
60
60
  @configuration[:manual_token_supplied] = true
61
- set_token(opts.delete(:token))
61
+ @refresh_token = opts.delete(:refresh_token)
62
+ refresh
62
63
  end
63
64
  validate_configuration
64
65
  logger.debug("client initialized with configuration: #{@configuration}")
@@ -85,6 +86,11 @@ module HomeAway
85
86
  @token
86
87
  end
87
88
 
89
+ # @return [String] The current refresh token
90
+ def refresh_token
91
+ @refresh_token
92
+ end
93
+
88
94
  # @private
89
95
  def marshal_dump
90
96
  # we lose our logger instance naively here, marshal dump doesn't like
@@ -200,23 +206,6 @@ module HomeAway
200
206
  end
201
207
  end
202
208
 
203
- def set_token(token)
204
- @token = token
205
- begin
206
- listing '100000'
207
- begin
208
- me
209
- logger.info('token supplied on client initialization provided 3-legged oauth')
210
- @mode = :three_legged
211
- rescue => e
212
- logger.info('token supplied on client initialization provided 2-legged oauth')
213
- @mode = :two_legged
214
- end
215
- rescue => e
216
- logger.error("token supplied on client initialization was not valid: #{e.to_s}")
217
- @mode = :unauthorized
218
- end
219
- end
220
209
  end
221
210
  end
222
211
  end
@@ -39,6 +39,7 @@ module HomeAway
39
39
  token = auth_code_strategy.get_token(code, :headers => {'Authorization' => "Basic #{credentials}"})
40
40
  @token = token.token
41
41
  @token_expires = Time.at token.expires_at
42
+ @refresh_token = token.refresh_token
42
43
  @mode = :three_legged
43
44
  return true
44
45
  rescue => _
@@ -48,11 +49,14 @@ module HomeAway
48
49
 
49
50
  private
50
51
 
52
+ def oauth_site
53
+ @configuration[:oauth_site] ||= @configuration[:site]
54
+ end
55
+
51
56
  def oauth_client
52
- site = @configuration[:oauth_site] ||= @configuration[:site]
53
57
  OAuth2::Client.new(@configuration.client_id,
54
58
  @configuration.client_secret,
55
- :site => site,
59
+ :site => oauth_site,
56
60
  :raise_errors => false
57
61
  )
58
62
  end
@@ -69,12 +73,26 @@ module HomeAway
69
73
  token = client_credentials_strategy.get_token
70
74
  @token = token.token
71
75
  @token_expires = Time.at token.expires_at
76
+ @refresh_token = token.refresh_token
72
77
  @mode = :two_legged
73
78
  return true
74
79
  rescue => _
75
80
  raise HomeAway::API::Errors::UnauthorizedError.new
76
81
  end
77
82
  end
83
+
84
+ def refresh
85
+ token = OAuth2::AccessToken.new(oauth_client, nil, {:refresh_token => @refresh_token})
86
+ params = {
87
+ :headers => {'Authorization' => "Basic #{credentials}"}
88
+ }
89
+ token = token.refresh!(params)
90
+ @token = token.token
91
+ @token_expires = Time.at token.expires_at
92
+ @refresh_token = token.refresh_token
93
+ @mode = :three_legged
94
+ true
95
+ end
78
96
  end
79
97
  end
80
98
  end
@@ -15,6 +15,6 @@
15
15
 
16
16
  module HomeAway
17
17
  module API
18
- VERSION = '1.1.0'
18
+ VERSION = '1.2.0'
19
19
  end
20
20
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: homeaway-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Charlie Meyer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-04-12 00:00:00.000000000 Z
11
+ date: 2016-05-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: hashie
@@ -252,16 +252,16 @@ dependencies:
252
252
  name: webmock
253
253
  requirement: !ruby/object:Gem::Requirement
254
254
  requirements:
255
- - - ">="
255
+ - - "<"
256
256
  - !ruby/object:Gem::Version
257
- version: '0'
257
+ version: 2.0.0
258
258
  type: :development
259
259
  prerelease: false
260
260
  version_requirements: !ruby/object:Gem::Requirement
261
261
  requirements:
262
- - - ">="
262
+ - - "<"
263
263
  - !ruby/object:Gem::Version
264
- version: '0'
264
+ version: 2.0.0
265
265
  - !ruby/object:Gem::Dependency
266
266
  name: simplecov
267
267
  requirement: !ruby/object:Gem::Requirement
@@ -366,4 +366,3 @@ signing_key:
366
366
  specification_version: 4
367
367
  summary: Ruby SDK for interacting with the HomeAway API
368
368
  test_files: []
369
- has_rdoc: