blabla_client 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,3 @@
1
1
  module BlablaClient
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
data/lib/blabla_client.rb CHANGED
@@ -4,8 +4,9 @@ require 'blabla_client/trip'
4
4
 
5
5
  module BlablaClient
6
6
 
7
- # Note : token expiration is ignored for now (current token expires on 15/03/2015)
8
- CURRENT_TOKEN = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE0MjY0MjY5NTUsImNsaWVudCI6ImE3NzM3ODdhNmI2YjM0NzlhMjk5NTg0MDUwMmUwNDZkNGE0NDNjYmE2MDFjMDk2Y2U1NGI4OTcyYjRkZTdjNzkiLCJzY29wZSI6IiIsInVzZXIiOm51bGx9.dOZF0wbZtW6_Vfa5dU6_X831yGCJlsSZE7gkdp2lldg'
7
+ # Note : token expiration is ignored for now (current token expires on 15/04/2015)
8
+ # PREVIOUS_TOKEN = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE0MjY0MjY5NTUsImNsaWVudCI6ImE3NzM3ODdhNmI2YjM0NzlhMjk5NTg0MDUwMmUwNDZkNGE0NDNjYmE2MDFjMDk2Y2U1NGI4OTcyYjRkZTdjNzkiLCJzY29wZSI6IiIsInVzZXIiOm51bGx9.dOZF0wbZtW6_Vfa5dU6_X831yGCJlsSZE7gkdp2lldg'
9
+ CURRENT_TOKEN = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE0MjkxMzIwMDUsImNsaWVudCI6ImE3NzM3ODdhNmI2YjM0NzlhMjk5NTg0MDUwMmUwNDZkNGE0NDNjYmE2MDFjMDk2Y2U1NGI4OTcyYjRkZTdjNzkiLCJzY29wZSI6IiIsInVzZXIiOm51bGx9.HKdhHE8XilgrK9cfK6GYUWFbaaQDg_fOWdc0Ze06qIA'
9
10
 
10
11
  # token "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE0MjY0MjY5NTUsImNsaWVudCI6ImE3NzM3ODdhNmI2YjM0NzlhMjk5NTg0MDUwMmUwNDZkNGE0NDNjYmE2MDFjMDk2Y2U1NGI4OTcyYjRkZTdjNzkiLCJzY29wZSI6IiIsInVzZXIiOm51bGx9.dOZF0wbZtW6_Vfa5dU6_X831yGCJlsSZE7gkdp2lldg"
11
12
  # expires_at : 1426426958
@@ -41,10 +42,16 @@ module BlablaClient
41
42
  trips = Trip.parse_response(response.body)
42
43
  @logger.info("Retrieved #{trips[:trips].length} trips for page #{page} of request #{departure}-#{arrival} from #{range_start} to #{range_end}")
43
44
  rescue OAuth2::Error => e
45
+ http_code = e.response.status
44
46
  @logger.error("An error occurred while calling the API on #{@config[:api_url]}")
45
47
  @logger.error("Response : #{e.response}")
46
48
  @logger.error("Code : #{e.code}")
49
+ @logger.error("HTTP status code : #{http_code}")
47
50
  @logger.error("Description : #{e.description}")
51
+ if http_code == 403
52
+ @logger.info('Token seems to have expired - Retrying with a new one')
53
+ trips = renew_and_get_trips(departure, arrival, range_start, range_end, page)
54
+ end
48
55
  end
49
56
  trips
50
57
  end
@@ -60,10 +67,26 @@ module BlablaClient
60
67
 
61
68
  private
62
69
 
63
- def self.get_response(departure, arrival, date_range_start, date_range_end, page)
70
+ def self.renew_and_get_trips(departure, arrival, date_range_start, date_range_end, page)
71
+ trips = []
72
+ begin
73
+ response = get_response(departure, arrival, date_range_start, date_range_end, page, true)
74
+ trips = Trip.parse_response(response.body)
75
+ @logger.info("Retrieved #{trips[:trips].length} trips for page #{page} of request #{departure}-#{arrival} from #{date_range_start} to #{date_range_start}")
76
+ rescue OAuth2::Error => e
77
+ http_code = e.response.status
78
+ @logger.error("An error occurred while calling the API on #{@config[:api_url]} after attempting to renew the token")
79
+ @logger.error("Response : #{e.response}")
80
+ @logger.error("Code : #{e.code}")
81
+ @logger.error("HTTP status code : #{http_code}")
82
+ @logger.error("Description : #{e.description}")
83
+ end
84
+ trips
85
+ end
86
+
87
+ def self.get_response(departure, arrival, date_range_start, date_range_end, page, renew_token = false)
64
88
  client = OAuth2::Client.new(@config[:client_id], @config[:client_secret], :site => @config[:auth_site], :token_url => @config[:token_path])
65
- # token = client.client_credentials.get_token
66
- token = OAuth2::AccessToken.new(client, CURRENT_TOKEN, :mode => :query)
89
+ token = renew_token ? client.client_credentials.get_token : OAuth2::AccessToken.new(client, CURRENT_TOKEN, :mode => :query)
67
90
  token.get(@config[:api_url],
68
91
  :params => {
69
92
  :_format => 'json',
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: blabla_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-03-14 00:00:00.000000000 Z
12
+ date: 2015-03-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler