ravendb-manager 0.1.0 → 0.1.1

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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/ravendb-manager.rb +40 -8
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 23e22ef63e24ebe6f613b1fb8f7ee1602d84a161
4
- data.tar.gz: 51c247984693b2bc4c319e7c0bda3b99bdac3d02
3
+ metadata.gz: eefb1e6408f41ce3ab433ad4bc4121a6b488e748
4
+ data.tar.gz: 641508938f13360382848a3963c0c34b4daf0d6f
5
5
  SHA512:
6
- metadata.gz: a39fcd7615ac584cac75301a627de77a88c15316b4a0d97f1fd9bb5efb9cc2c82685f118f36228fa19d3230029e4ee533f7585855f14b313851aa1d5419fa911
7
- data.tar.gz: a69fd21bcb89ce9294f24d31630543a02e27c7e30aba318cc93d0e23dec5c51d2fda0ce6c7be103704e1684553afda438501867ed4f203f0597f443f7545e64e
6
+ metadata.gz: aab7f4ed0e97b8004070221c84a41a302772b702a148e63a514ca3f162f1df909511a9553f331f0e7a38d47a1a3c00b0d9827a82a3fa87d34f30ea5f68c55aaa
7
+ data.tar.gz: 7dcc8c0ee220e107d0dc66fcbbb1f21ba537b89ad960dfbec3bdb840d1c4569ef8bf5858c049491d2c9bcd0e7cf15d58406bc146955e949f9d6e9908f1fdb7ab
@@ -254,34 +254,66 @@ class RavenDBManager
254
254
  end
255
255
  end
256
256
 
257
- def http_get(url)
257
+ def http_get(url, is_retry=false)
258
258
  http = Net::HTTP.new(@hostname, @port)
259
259
  request = Net::HTTP::Get.new(URI.escape(url))
260
260
  request['Authorization'] = "Bearer #{@bearer_token}"
261
- return http.request(request)
261
+
262
+ response = http.request(request)
263
+ if (has_token_expired?(response) && !is_retry) then
264
+ @bearer_token = get_bearer_token
265
+ return http_get(url, true)
266
+ end
267
+
268
+ return response
262
269
  end
263
270
 
264
- def http_delete(url)
271
+ def http_delete(url, is_retry=false)
265
272
  http = Net::HTTP.new(@hostname, @port)
266
273
  request = Net::HTTP::Delete.new(URI.escape(url))
267
274
  request['Authorization'] = "Bearer #{@bearer_token}"
268
- return http.request(request)
275
+
276
+ response = http.request(request)
277
+ if (has_token_expired?(request) && !is_retry) then
278
+ @bearer_token = get_bearer_token
279
+ return http_delete(url, true)
280
+ end
281
+
282
+ return response
269
283
  end
270
284
 
271
- def http_put(url, document)
285
+ def http_put(url, document, is_retry=false)
272
286
  http = Net::HTTP.new(@hostname, @port)
273
287
  request = Net::HTTP::Put.new(URI.escape(url))
274
288
  request['Authorization'] = "Bearer #{@bearer_token}"
275
289
  request.body = document
276
- return http.request(request)
290
+
291
+ response = http.request(request)
292
+ if (has_token_expired?(request) && !is_retry) then
293
+ @bearer_token = get_bearer_token
294
+ return http_put(url, document, true)
295
+ end
296
+
297
+ return response
277
298
  end
278
299
 
279
- def http_post(url, document = nil)
300
+ def http_post(url, document = nil, is_retry=false)
280
301
  http = Net::HTTP.new(@hostname, @port)
281
302
  request = Net::HTTP::Post.new(URI.escape(url))
282
303
  request['Authorization'] = "Bearer #{@bearer_token}"
283
304
  request.body = document unless document.nil?
284
- return http.request(request)
305
+
306
+ response = http.request(request)
307
+ if (has_token_expired?(request) && !is_retry) then
308
+ @bearer_token = get_bearer_token
309
+ return http_post(url, document, true)
310
+ end
311
+
312
+ return response
313
+ end
314
+
315
+ def has_token_expired?(request)
316
+ return request.code == "401" && request['www-authenticate'].include?('The access token is expired')
285
317
  end
286
318
 
287
319
  def get_bearer_token
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ravendb-manager
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Christoph Enzmann