homeaway-api 1.1.0 → 1.2.0

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
  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: