rail-locator-api 0.1.23 → 0.1.31
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/rail-locator-api/api_request.rb +34 -11
- data/lib/rail-locator-api/request.rb +19 -10
- data/lib/rail-locator-api/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 33574469b6b170067b3d58342f93cb05e37e489f4fa545c509596865ab18db61
|
4
|
+
data.tar.gz: 28f32f1bca4499066ef8616c28a19d034ec02de3847f859fd477e7a8fb3242d5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 94ee04c1e1bfdc5571ba120ae75a4d3dd33a7193caad81de585c12bbb69e62a67bc54ed4da4628b102a1dece81bb404862bc1c0075e123dc26850c1a75f0eae8
|
7
|
+
data.tar.gz: b29102d243faad074bfb6f61222c6d8479553e72110d8da9332cb0976c401f178a457e858626b0042765e233c2b8c3e88c6447d8a2cc7a7677a663899a00d231
|
@@ -5,26 +5,34 @@ module RailLocatorApi
|
|
5
5
|
@request_builder = builder
|
6
6
|
end
|
7
7
|
|
8
|
-
def post(params: nil, headers: nil,
|
8
|
+
def post(params: nil, headers: nil, format: nil, body: {})
|
9
9
|
validate_api_key
|
10
10
|
begin
|
11
|
-
response = self.rest_client(
|
11
|
+
response = self.rest_client(format).post do |request|
|
12
12
|
configure_request(request: request, params: params, headers: headers, body: body)
|
13
13
|
end
|
14
|
-
|
14
|
+
if [nil, 'json'].include?(format)
|
15
|
+
parse_response(response)
|
16
|
+
else
|
17
|
+
response
|
18
|
+
end
|
15
19
|
rescue => e
|
16
20
|
handle_error(e)
|
17
21
|
end
|
18
22
|
end
|
19
23
|
|
20
|
-
def get(params: nil, headers: nil, body: {})
|
24
|
+
def get(params: nil, headers: nil, format: nil, body: {})
|
21
25
|
validate_api_key
|
22
26
|
|
23
27
|
begin
|
24
|
-
response = self.rest_client.get do |request|
|
28
|
+
response = self.rest_client(format).get do |request|
|
25
29
|
configure_request(request: request, params: params, headers: headers, body: body)
|
26
30
|
end
|
27
|
-
|
31
|
+
if [nil, 'json'].include?(format)
|
32
|
+
parse_response(response)
|
33
|
+
else
|
34
|
+
response
|
35
|
+
end
|
28
36
|
rescue => e
|
29
37
|
handle_error(e)
|
30
38
|
end
|
@@ -150,10 +158,10 @@ module RailLocatorApi
|
|
150
158
|
end
|
151
159
|
request.headers['User-Agent'] = "RailLocatorApi/#{RailLocatorApi::VERSION} Ruby gem"
|
152
160
|
if @request_builder.without_ratelimit
|
153
|
-
request.headers['X-Request-Without-
|
161
|
+
request.headers['X-Is-Request-Without-RateLimit'] = "true"
|
154
162
|
end
|
155
163
|
if @request_builder.is_allow_access_to_coordinates
|
156
|
-
request.headers['
|
164
|
+
request.headers['X-Is-Allow-Access-To-Coordinates'] = "true"
|
157
165
|
end
|
158
166
|
request.headers.merge!(headers) if headers
|
159
167
|
request.body = MultiJson.dump(body) if body
|
@@ -162,8 +170,8 @@ module RailLocatorApi
|
|
162
170
|
end
|
163
171
|
end
|
164
172
|
|
165
|
-
def rest_client(
|
166
|
-
client = Faraday.new("#{self.api_url}#{
|
173
|
+
def rest_client(format=nil)
|
174
|
+
client = Faraday.new("#{self.api_url}#{format.present? ? ".#{format}": ""}", proxy: self.proxy,
|
167
175
|
ssl: self.ssl_options) do |faraday|
|
168
176
|
faraday.request :gzip
|
169
177
|
faraday.response :raise_error
|
@@ -213,11 +221,26 @@ module RailLocatorApi
|
|
213
221
|
end
|
214
222
|
|
215
223
|
def api_url
|
216
|
-
|
224
|
+
case @request_builder.path_parts.first
|
225
|
+
when "lk"
|
226
|
+
lk_api_url
|
227
|
+
when "app"
|
228
|
+
app_api_url
|
229
|
+
else
|
230
|
+
base_api_url
|
231
|
+
end + @request_builder.path
|
217
232
|
end
|
218
233
|
|
219
234
|
def base_api_url
|
220
235
|
"#{RailLocatorApi.api_endpoint}/api/v2.0/"
|
221
236
|
end
|
237
|
+
|
238
|
+
def lk_api_url
|
239
|
+
"https://rail-locator.com/"
|
240
|
+
end
|
241
|
+
|
242
|
+
def app_api_url
|
243
|
+
"http://192.168.1.129:1488/"
|
244
|
+
end
|
222
245
|
end
|
223
246
|
end
|
@@ -20,10 +20,15 @@ module RailLocatorApi
|
|
20
20
|
|
21
21
|
@api_user_id = api_user_id
|
22
22
|
|
23
|
-
@
|
24
|
-
|
25
|
-
|
26
|
-
|
23
|
+
if @api_key == :keycloak
|
24
|
+
@access_token = access_token || self.class.access_token || RailLocatorApi.generate_access_token.try(:dig, "access_token")
|
25
|
+
@access_token = @access_token.strip if @access_token
|
26
|
+
@refresh_token = refresh_token || self.class.refresh_token
|
27
|
+
@refresh_token = @refresh_token.strip if @refresh_token
|
28
|
+
else
|
29
|
+
@access_token = ""
|
30
|
+
@refresh_token = ""
|
31
|
+
end
|
27
32
|
|
28
33
|
@api_user_email = api_user_email || ENV['API_USER_EMAIL'] || ""
|
29
34
|
@api_user_password = api_user_password || ENV['API_USER_PASSWORD'] || ""
|
@@ -62,24 +67,28 @@ module RailLocatorApi
|
|
62
67
|
end
|
63
68
|
end
|
64
69
|
|
70
|
+
def path_parts
|
71
|
+
@path_parts
|
72
|
+
end
|
73
|
+
|
65
74
|
def path
|
66
75
|
@path_parts.join('/')
|
67
76
|
end
|
68
77
|
|
69
|
-
def create(params: nil, headers: nil, body: {})
|
70
|
-
APIRequest.new(builder: self).post(params: params, headers: headers, body: body)
|
78
|
+
def create(params: nil, headers: nil, body: {}, format: nil)
|
79
|
+
APIRequest.new(builder: self).post(params: params, headers: headers, body: body, format: format)
|
71
80
|
ensure
|
72
81
|
reset
|
73
82
|
end
|
74
83
|
|
75
|
-
def update(params: nil, headers: nil, body: {})
|
76
|
-
APIRequest.new(builder: self).post(params: params, headers: headers, body: body)
|
84
|
+
def update(params: nil, headers: nil, body: {}, format: nil)
|
85
|
+
APIRequest.new(builder: self).post(params: params, headers: headers, body: body, format: format)
|
77
86
|
ensure
|
78
87
|
reset
|
79
88
|
end
|
80
89
|
|
81
|
-
def retrieve(params: nil, headers: nil, body: {})
|
82
|
-
APIRequest.new(builder: self).get(params: params, headers: headers, body: body)
|
90
|
+
def retrieve(params: nil, headers: nil, body: {}, format: nil)
|
91
|
+
APIRequest.new(builder: self).get(params: params, headers: headers, body: body, format: format)
|
83
92
|
ensure
|
84
93
|
reset
|
85
94
|
end
|