ninja_van_api 0.3.2 → 0.3.3
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 +4 -4
- data/lib/ninja_van_api/client.rb +14 -36
- data/lib/ninja_van_api/error.rb +3 -0
- data/lib/ninja_van_api/resources/base_resource.rb +1 -1
- data/lib/ninja_van_api/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ed997af05554494833a80b0f1e41eecfd054d3524e6b546319ff248d5b984ca8
|
4
|
+
data.tar.gz: 2ad564359189a49a750499d554906d22e8841a7ca64273155b12f184c05db851
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8c70b03ee5fe1557500ee6c9be2ecd0f98d1e92dd5b597575203e1af0d39daf2a60453cb92e90b7a2c1b002de998b6d2cecdc26feb38c74ff37cbb981ce2e63f
|
7
|
+
data.tar.gz: 6ee23a7f5697805be5b1b6f3e43b3d6d1d6c6a1458f864e7f464b5473c058e876b66720b29aa20201e83b1482846f232e912e34e0dc1bef62151e3b6e9ce73ab
|
data/lib/ninja_van_api/client.rb
CHANGED
@@ -15,9 +15,6 @@ module NinjaVanApi
|
|
15
15
|
@country_code = country_code
|
16
16
|
@test_mode = test_mode
|
17
17
|
@conn_opts = conn_opts
|
18
|
-
if defined?(Rails) && Rails.env.development?
|
19
|
-
@token_info = { "access_token" => ENV["NINJAVAN_API_ACCESS_TOKEN"], "expires" => Time.now.utc.to_i + 3600 }
|
20
|
-
end
|
21
18
|
|
22
19
|
validate_country_code
|
23
20
|
end
|
@@ -42,6 +39,11 @@ module NinjaVanApi
|
|
42
39
|
@waybills ||= WaybillResource.new(self)
|
43
40
|
end
|
44
41
|
|
42
|
+
def refresh_access_token
|
43
|
+
Rails.cache.delete(cache_key)
|
44
|
+
fetch_access_token
|
45
|
+
end
|
46
|
+
|
45
47
|
private
|
46
48
|
|
47
49
|
def validate_country_code
|
@@ -57,19 +59,14 @@ module NinjaVanApi
|
|
57
59
|
end
|
58
60
|
|
59
61
|
def access_token
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
Rails.cache.read(cache_key)["access_token"]
|
64
|
-
else
|
65
|
-
@token_info["access_token"]
|
62
|
+
if Rails.env.development?
|
63
|
+
Rails.logger.debug "Access token might be expired. You can refetch the token by calling NinjaVanApi::Client#refresh_access_token. Make sure update the ENV variable NINJAVAN_API_ACCESS_TOKEN"
|
64
|
+
return { "access_token" => ENV.fetch("NINJAVAN_API_ACCESS_TOKEN") }
|
66
65
|
end
|
67
|
-
end
|
68
66
|
|
69
|
-
|
70
|
-
|
71
|
-
Rails.cache.
|
72
|
-
fetch_access_token
|
67
|
+
fetch_access_token if token_expired?
|
68
|
+
|
69
|
+
Rails.cache.read(cache_key)["access_token"]
|
73
70
|
end
|
74
71
|
|
75
72
|
def fetch_access_token
|
@@ -89,23 +86,8 @@ module NinjaVanApi
|
|
89
86
|
handle_access_token_response(response)
|
90
87
|
end
|
91
88
|
|
92
|
-
def access_token
|
93
|
-
fetch_access_token if token_expired?
|
94
|
-
|
95
|
-
if defined?(Rails) && Rails.respond_to?(:cache) && Rails.cache
|
96
|
-
Rails.cache.read(cache_key)["access_token"]
|
97
|
-
else
|
98
|
-
@token_info["access_token"]
|
99
|
-
end
|
100
|
-
end
|
101
|
-
|
102
89
|
def token_expired?
|
103
|
-
token_info =
|
104
|
-
if defined?(Rails) && Rails.respond_to?(:cache) && Rails.cache
|
105
|
-
Rails.cache.read(cache_key)
|
106
|
-
else
|
107
|
-
@token_info
|
108
|
-
end
|
90
|
+
token_info = Rails.cache.read(cache_key)
|
109
91
|
|
110
92
|
return true if token_info.nil?
|
111
93
|
|
@@ -117,12 +99,8 @@ module NinjaVanApi
|
|
117
99
|
raise NinjaVanApi::AuthenticationError unless response.success?
|
118
100
|
|
119
101
|
token_info = JSON.parse(response.body)
|
120
|
-
|
121
|
-
|
122
|
-
Rails.cache.write(cache_key, token_info, expires_in: token_info["expires_in"])
|
123
|
-
else
|
124
|
-
@token_info = token_info
|
125
|
-
end
|
102
|
+
Rails.cache.write(cache_key, token_info, expires_in: token_info["expires_in"])
|
103
|
+
cache_key
|
126
104
|
end
|
127
105
|
|
128
106
|
def cache_key
|
data/lib/ninja_van_api/error.rb
CHANGED
@@ -44,7 +44,7 @@ module NinjaVanApi
|
|
44
44
|
when 400
|
45
45
|
raise Error, "A bad request or a validation exception has occurred. #{error_message}"
|
46
46
|
when 401
|
47
|
-
if retry_count.zero?
|
47
|
+
if !(Rails.env.development? || Rails.env.test?) && retry_count.zero?
|
48
48
|
# Force token refresh and retry the request once
|
49
49
|
client.refresh_access_token
|
50
50
|
return retry_request(response.env, retry_count + 1)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ninja_van_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jane Trang Mai Nguyen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-
|
11
|
+
date: 2025-03-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|