rail-locator-api 0.1.14 → 0.1.16

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
  SHA256:
3
- metadata.gz: 65b50eaa7992d646d4f617b79b5f81ac212749952257e58bebbd990138a68bae
4
- data.tar.gz: 0d3b58eed1ff241b14ab9fa11baa37e499d8c4aa83abe07a6150718f24209cf5
3
+ metadata.gz: 954fca62238bc7b33b0b86999e017649c5338f01b0fd4d684651abcf75b062a4
4
+ data.tar.gz: e1e0fb3102e08e62195644fd8a479c6172eea3220c7b62bfd049f8e85dc026cf
5
5
  SHA512:
6
- metadata.gz: 9fa828ef4a6adaaf6ddc2389da15d9eba2e7856226e6e6dbc14f2dccfc409aab086e09edea75a35f9f636999f463f17b3cc7164d55deeb82e1dafd323f09733c
7
- data.tar.gz: b16f370d86c688dc12a8868eda9c8360565e23a09bdd158c2c35d4ab6d07c5193413b9eb07be03cab961f94c6e96d77cbe25fad81f3ff3751810593fda3ff2f2
6
+ metadata.gz: be314fe74d7ec16776b2c528de676d44d067d38792f4eb671942e2e8c91c3e3fe66292492abdb7fa9bd11dd44db2065fe6fb712912148bd633bf363fc78c4396
7
+ data.tar.gz: 855004fb2e73a23d5086ba1bad484fd7509364fa9325820fd3792d4bc30e02fad838a9b28ba918bfa9fbbc7d0e1705088bf854da18cedf444043f78be3bd3611
@@ -121,6 +121,14 @@ module RailLocatorApi
121
121
  if request
122
122
  request.params.merge!(params) if params
123
123
  request.headers['Content-Type'] = 'application/json'
124
+ unless RailLocatorApi::Request.token_alive?(RailLocatorApi::Request.access_token)
125
+ if RailLocatorApi::Request.token_alive?(RailLocatorApi::Request.refresh_token)
126
+ response = RailLocatorApi.refresh_access_token
127
+ RailLocatorApi::Request.access_token = response.try(:dig, "access_token")
128
+ RailLocatorApi::Request.refresh_token = response.try(:dig, "refresh_token")
129
+ end
130
+ end
131
+
124
132
  if self.api_auth_method == :base64
125
133
  request.headers['Authorization'] = "Basic " + Base64::encode64("#{self.api_user_email}:#{self.api_user_password}")
126
134
  end
@@ -20,10 +20,8 @@ module RailLocatorApi
20
20
 
21
21
  @access_token = access_token || self.class.access_token || RailLocatorApi.generate_access_token.try(:dig, "access_token")
22
22
  @access_token = @access_token.strip if @access_token
23
- @access_token = RailLocatorApi::generate_access_token.try(:dig, "access_token") if @access_token.nil?
24
23
  @refresh_token = refresh_token || self.class.refresh_token
25
24
  @refresh_token = @refresh_token.strip if @refresh_token
26
-
27
25
  @api_user_email = api_user_email || ENV['API_USER_EMAIL'] || ""
28
26
  @api_user_password = api_user_password || ENV['API_USER_PASSWORD'] || ""
29
27
  @api_endpoint = api_endpoint || self.class.api_endpoint
@@ -88,6 +86,18 @@ module RailLocatorApi
88
86
  reset
89
87
  end
90
88
 
89
+ def token_alive?(token)
90
+ begin
91
+ return false if token.nil?
92
+ exp = JWT.decode(token, JWT_SECTET_CODE, false).try(:first).try(:dig, "exp")
93
+ return false if exp.nil?
94
+ Time.at(exp) > Time.now + 30.second
95
+ rescue => e
96
+ #Sentry.capture_exception(e)
97
+ false
98
+ end
99
+ end
100
+
91
101
  protected
92
102
 
93
103
  def reset
@@ -1,3 +1,3 @@
1
1
  module RailLocatorApi
2
- VERSION = "0.1.14"
2
+ VERSION = "0.1.16"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rail-locator-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.14
4
+ version: 0.1.16
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pavel Osetrov
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: 1.3.6
69
+ - !ruby/object:Gem::Dependency
70
+ name: jwt
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
69
83
  description: ''
70
84
  email: pavel.osetrov@me.com
71
85
  executables: []