rail-locator-api 0.0.24 → 0.0.25

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: 642255918703225bbbbe22588fad2836ea34410ca69599b481b05027a45a90fb
4
- data.tar.gz: db7b2515ae3f3dfb5657d9d47cf49d3a4c61cd7251d3379fcd7f4ce79bb7bfb5
3
+ metadata.gz: 3b25b34e0bbca2dc11a3a0e5c1582763bab4d1d010d7a35e5aeb6cc09122b07b
4
+ data.tar.gz: 5bd43dabc4467fe756210544a910290b4d65b59dbddbd15b33d36f2e9277d4b7
5
5
  SHA512:
6
- metadata.gz: d59a9dc55e51c825311fac4121f28fbee9fe7ad8a7d46cd8808ea1f32cc0e1ecb3ee8fef032bd94ff49054958391d043dd29567dfbbbc54556547a28710e0c32
7
- data.tar.gz: ade4c0153aecaa5e8c65d8bc8db56bfb4e2638b9df7e26807f4c9da9fee6d21f129e7ff7196828825bb644d98a5afe157e00f6571a36eaacedc8592a8c27e773
6
+ metadata.gz: b45549523425ac1dd977927991534507273156f0ab8d14d82e75f7e73a46156b408aec2864d0bbf4bc2a9de0ab6436cd8cfa766d52d7f1f8237439106e5216ce
7
+ data.tar.gz: 00aa0506a19cc0b1bd4dff0b5b9a11152cf068360cc469fd7829f69673959ba662b670435e92758633a899fff1a55624cad00b70d2da8de2add99935b04dae62
@@ -5,7 +5,7 @@ module RailLocatorApi
5
5
  @request_builder = builder
6
6
  end
7
7
 
8
- def post(params: nil, headers: nil, suffix: nil, body: {}, first_time: true)
8
+ def post(params: nil, headers: nil, suffix: nil, body: {})
9
9
  validate_api_key
10
10
  begin
11
11
  response = self.rest_client(suffix).post do |request|
@@ -17,7 +17,7 @@ module RailLocatorApi
17
17
  end
18
18
  end
19
19
 
20
- def get(params: nil, headers: nil, body: {}, first_time: true)
20
+ def get(params: nil, headers: nil, body: {})
21
21
  validate_api_key
22
22
 
23
23
  begin
@@ -38,6 +38,10 @@ module RailLocatorApi
38
38
  @request_builder.access_token
39
39
  end
40
40
 
41
+ def refresh_token
42
+ @request_builder.refresh_token
43
+ end
44
+
41
45
  def api_key
42
46
  @request_builder.api_key
43
47
  end
@@ -1,6 +1,6 @@
1
1
  module RailLocatorApi
2
2
  class Request
3
- attr_accessor :access_token, :api_key, :api_user_email, :api_user_password, :api_auth_method, :api_endpoint,
3
+ attr_accessor :access_token, :refresh_token, :api_key, :api_user_email, :api_user_password, :api_auth_method, :api_endpoint,
4
4
  :timeout, :open_timeout, :proxy, :ssl_options, :faraday_adapter, :symbolize_keys, :debug, :logger, :test
5
5
 
6
6
  AUTH_METHODS = [:keycloak, :api_key, :base64]
@@ -8,7 +8,7 @@ module RailLocatorApi
8
8
  DEFAULT_TIMEOUT = 60
9
9
  DEFAULT_OPEN_TIMEOUT = 60
10
10
 
11
- def initialize(access_token: nil, api_key: nil, api_user_email: nil, api_user_password: nil,
11
+ def initialize(access_token: nil, refresh_token: nil, api_key: nil, api_user_email: nil, api_user_password: nil,
12
12
  api_endpoint: nil, api_auth_method: nil, timeout: nil, open_timeout: nil, proxy: nil, ssl_options: nil,
13
13
  faraday_adapter: nil, symbolize_keys: false, debug: false, logger: nil, test: false)
14
14
 
@@ -19,10 +19,12 @@ module RailLocatorApi
19
19
 
20
20
  @access_token = access_token || self.class.access_token || RailLocatorApi.generate_access_token.try(:dig, "access_token")
21
21
  @access_token = @access_token.strip if @access_token
22
- @access_token = RailLocatorApi::generate_access_token if @access_token.nil?
22
+ @access_token = RailLocatorApi::generate_access_token.try(:dig, "access_token") if @access_token.nil?
23
+ @refresh_token = refresh_token || self.class.refresh_token
24
+ @refresh_token = @refresh_token.strip if @refresh_token
23
25
 
24
- @api_user_email = api_user_email || RailLocatorApi::api_user_email || ENV['API_USER_EMAIL']
25
- @api_user_password = api_user_password || RailLocatorApi::api_user_password || ENV['API_USER_PASSWORD']
26
+ @api_user_email = api_user_email || RailLocatorApi::api_user_email || ENV['API_USER_EMAIL'] || ""
27
+ @api_user_password = api_user_password || RailLocatorApi::api_user_password || ENV['API_USER_PASSWORD'] || ""
26
28
  @api_endpoint = api_endpoint || self.class.api_endpoint
27
29
  @api_endpoint = RailLocatorApi::api_endpoint if @api_endpoint.nil?
28
30
  @api_auth_method = api_auth_method || DEFAULT_AUTH_METHOD
@@ -95,8 +97,8 @@ module RailLocatorApi
95
97
  :api_endpoint, :proxy, :ssl_options, :faraday_adapter, :symbolize_keys, :debug, :logger, :test
96
98
 
97
99
  def method_missing(sym, *args, &block)
98
- new(access_token: self.access_token, api_key: self.api_key, api_user_email: self.api_user_email,
99
- api_user_password: self.api_user_email,
100
+ new(access_token: self.access_token, refresh_token: self.refresh_token, api_key: self.api_key,
101
+ api_user_email: self.api_user_email, api_user_password: self.api_user_email,
100
102
  api_auth_method: self.api_auth_method, api_endpoint: self.api_endpoint,
101
103
  timeout: self.timeout, open_timeout: self.open_timeout, faraday_adapter: self.faraday_adapter,
102
104
  symbolize_keys: self.symbolize_keys, debug: self.debug, proxy: self.proxy, ssl_options: self.ssl_options, logger: self.logger,
@@ -1,3 +1,3 @@
1
1
  module RailLocatorApi
2
- VERSION = "0.0.24"
2
+ VERSION = "0.0.25"
3
3
  end
@@ -14,7 +14,21 @@ module RailLocatorApi
14
14
  else
15
15
  payload = "grant_type=#{RailLocatorApi.keycloak_grant_type}&client_id=#{RailLocatorApi.keycloak_client_id}&code=#{RailLocatorApi::Request.api_key}&redirect_uri=#{RailLocatorApi.keycloak_redirect_uri}"
16
16
  end
17
+ connection = Faraday.new(RailLocatorApi.keycloak_token_url, proxy: nil,
18
+ ssl: { version: "TLSv1_2" }) do |faraday|
19
+ faraday.adapter Faraday.default_adapter
20
+ faraday.response :logger, ::Logger.new(STDOUT), bodies: true
21
+ end
22
+
23
+ response = connection.post RailLocatorApi.keycloak_token_url, payload do |request|
24
+ request.headers['accept'] = 'application/json'
25
+ end
26
+
27
+ JSON.parse(response.body)
28
+ end
17
29
 
30
+ def refresh_access_token
31
+ payload = "grant_type=refresh_token&client_id=#{RailLocatorApi.keycloak_client_id}&refresh_token=#{RailLocatorApi::Request.access_token}&redirect_uri=#{RailLocatorApi.keycloak_redirect_uri}"
18
32
  connection = Faraday.new(RailLocatorApi.keycloak_token_url, proxy: nil,
19
33
  ssl: { version: "TLSv1_2" }) do |faraday|
20
34
  faraday.adapter Faraday.default_adapter
@@ -25,7 +39,7 @@ module RailLocatorApi
25
39
  request.headers['accept'] = 'application/json'
26
40
  end
27
41
 
28
- JSON.parse(response.body).try(:dig, "access_token")
42
+ JSON.parse(response.body)
29
43
  end
30
44
 
31
45
  def setup
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.0.24
4
+ version: 0.0.25
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pavel Osetrov