nice_http 1.9.3 → 1.9.5
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/README.md +5 -2
- data/lib/nice_http/manage/request.rb +28 -19
- data/lib/nice_http/utils/set_lambdas.rb +40 -0
- data/lib/nice_http.rb +1 -0
- metadata +7 -6
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 806526768550e3cbc865065969da4a64f743440fdc049ec0a57ff9030e5cff6f
|
|
4
|
+
data.tar.gz: 46f3bea1706bf4329c918e309f3e2d0ac806841c4fa84e8b151eebdbcff1306b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 05fcd7af53f95a9285e7c9a8928e1d2e2ec568a6299209cfa7f34a9a864da01fa221427a9ac8fb89be7a250e0c95842ca3f343485029dc4974164fb034f819f5
|
|
7
|
+
data.tar.gz: 5910f5b98a6fc60c2ff43f8e74d466375f41b7c44c116e4285da19bbe354f1fe5aed4ec7e314ffce6465bf2f12ffc5988f539d22c2ff2db6d101e43d3dd42b28
|
data/README.md
CHANGED
|
@@ -260,7 +260,7 @@ NiceHttp.requests = {
|
|
|
260
260
|
}
|
|
261
261
|
```
|
|
262
262
|
|
|
263
|
-
You can use `NiceHttp.requests` to specify certain `headers`, `path` parameters or `data` that will apply on all requests sent.
|
|
263
|
+
You can use `NiceHttp.requests` to specify certain `headers`, `path` parameters or `data` or `values_for` that will apply on all requests sent.
|
|
264
264
|
```ruby
|
|
265
265
|
NiceHttp.requests = {
|
|
266
266
|
path: 'api-version=2022-12-09&testing=true',
|
|
@@ -272,11 +272,14 @@ NiceHttp.requests = {
|
|
|
272
272
|
}
|
|
273
273
|
```
|
|
274
274
|
|
|
275
|
-
Lambdas can be used also on data to change the payloads in real-time.
|
|
275
|
+
Lambdas can be used also on data and values_for to change the payloads in real-time. In case the lambda returns 'nil' the key won't be added to the request.
|
|
276
276
|
```ruby
|
|
277
277
|
NiceHttp.requests = {
|
|
278
278
|
data: {
|
|
279
279
|
zones: lambda { ENV['ZONES'] if NiceHttp.request[:method] == 'PUT' and NiceHttp.request[:path].match?(/^\/api\/users\/\d+/)}
|
|
280
|
+
},
|
|
281
|
+
values_for: {
|
|
282
|
+
region: lambda { 'Europe' if NiceHttp.request[:name] == 'Users.add' }
|
|
280
283
|
}
|
|
281
284
|
}
|
|
282
285
|
```
|
|
@@ -9,14 +9,20 @@ module NiceHttpManageRequest
|
|
|
9
9
|
# output:
|
|
10
10
|
# path, data, headers
|
|
11
11
|
######################################################
|
|
12
|
-
def manage_request(*
|
|
12
|
+
def manage_request(*arguments_param)
|
|
13
|
+
if arguments_param.size == 1 and arguments_param[0].kind_of?(Hash)
|
|
14
|
+
arguments = [arguments_param[0].deep_copy()]
|
|
15
|
+
else
|
|
16
|
+
arguments = arguments_param
|
|
17
|
+
end
|
|
18
|
+
|
|
13
19
|
require "json"
|
|
14
20
|
require 'cgi'
|
|
15
21
|
require 'uri'
|
|
16
22
|
|
|
17
23
|
@prev_request = Hash.new() if @prev_request.nil?
|
|
18
24
|
@defaults_request = self.class.requests if @defaults_request.nil? and self.class.requests.is_a?(Hash)
|
|
19
|
-
@request = Hash.new()
|
|
25
|
+
@request = Hash.new()
|
|
20
26
|
@defaults_request = Hash.new() unless @defaults_request.is_a?(Hash)
|
|
21
27
|
self.class.request = @request
|
|
22
28
|
|
|
@@ -128,15 +134,26 @@ module NiceHttpManageRequest
|
|
|
128
134
|
if arguments[0].include?(:values) and !arguments[0].include?(:values_for)
|
|
129
135
|
arguments[0][:values_for] = arguments[0][:values]
|
|
130
136
|
end
|
|
131
|
-
|
|
137
|
+
values_for_orig = {}
|
|
138
|
+
if @defaults_request.key?(:values_for) and @defaults_request.is_a?(Hash) and @defaults_request[:values_for].size > 0
|
|
139
|
+
if arguments[0].include?(:values_for)
|
|
140
|
+
values_for_orig = arguments[0][:values_for].deep_copy
|
|
141
|
+
arguments[0][:values_for] = @defaults_request[:values_for].nice_merge(arguments[0][:values_for])
|
|
142
|
+
else
|
|
143
|
+
arguments[0][:values_for] = @defaults_request[:values_for].deep_copy
|
|
144
|
+
end
|
|
145
|
+
end
|
|
146
|
+
|
|
132
147
|
if @values_for.size > 0
|
|
133
148
|
if arguments[0][:values_for].nil?
|
|
134
|
-
arguments[0][:values_for] = @values_for.
|
|
149
|
+
arguments[0][:values_for] = @values_for.deep_copy
|
|
135
150
|
else
|
|
136
|
-
arguments[0][:values_for] = @values_for.
|
|
151
|
+
arguments[0][:values_for] = @values_for.nice_merge(arguments[0][:values_for])
|
|
137
152
|
end
|
|
138
153
|
end
|
|
139
|
-
|
|
154
|
+
if arguments[0].include?(:values_for) and arguments[0][:values_for].size > 0 and arguments[0][:values_for].is_a?(Hash)
|
|
155
|
+
arguments[0][:values_for] = NiceHttpUtils.set_lambdas(arguments[0][:values_for], values_for_orig)
|
|
156
|
+
end
|
|
140
157
|
if content_type_included and (!headers_t["Content-Type"][/text\/xml/].nil? or
|
|
141
158
|
!headers_t["Content-Type"]["application/soap+xml"].nil? or
|
|
142
159
|
!headers_t["Content-Type"][/application\/jxml/].nil?)
|
|
@@ -160,22 +177,15 @@ module NiceHttpManageRequest
|
|
|
160
177
|
}
|
|
161
178
|
end
|
|
162
179
|
elsif data.kind_of?(Hash)
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
data
|
|
166
|
-
|
|
167
|
-
data_kv = v.call
|
|
168
|
-
if data_kv.nil?
|
|
169
|
-
data.delete(k)
|
|
170
|
-
else
|
|
171
|
-
data[k] = data_kv
|
|
172
|
-
end
|
|
173
|
-
end
|
|
174
|
-
end
|
|
180
|
+
data_orig = data.deep_copy
|
|
181
|
+
data.nice_merge!(@defaults_request[:data]) if @defaults_request.key?(:data)
|
|
182
|
+
data = NiceHttpUtils.set_lambdas(data, data_orig)
|
|
183
|
+
|
|
175
184
|
if arguments[0].include?(:values_for)
|
|
176
185
|
data = data.set_values(arguments[0][:values_for])
|
|
177
186
|
end
|
|
178
187
|
data = data.to_json()
|
|
188
|
+
|
|
179
189
|
elsif data.kind_of?(Array)
|
|
180
190
|
#todo: implement set_nested
|
|
181
191
|
data_arr = Array.new()
|
|
@@ -309,7 +319,6 @@ module NiceHttpManageRequest
|
|
|
309
319
|
self.class.last_request = message
|
|
310
320
|
@logger.info(message)
|
|
311
321
|
end
|
|
312
|
-
|
|
313
322
|
return path, data, headers_t
|
|
314
323
|
rescue Exception => stack
|
|
315
324
|
@logger.fatal(stack)
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
module NiceHttpUtils
|
|
2
|
+
##################################################
|
|
3
|
+
# It will set all lambdas in data hash
|
|
4
|
+
# @param data [Hash]
|
|
5
|
+
# @param data_orig [Hash]
|
|
6
|
+
# @return [Hash] the data hash with all lambdas set
|
|
7
|
+
####################################################
|
|
8
|
+
def self.set_lambdas(data, data_orig)
|
|
9
|
+
data = data.dup
|
|
10
|
+
data_orig = data_orig.dup unless data_orig.nil?
|
|
11
|
+
if data.is_a?(Hash)
|
|
12
|
+
data.each do |k, v|
|
|
13
|
+
if v.is_a?(Proc)
|
|
14
|
+
data_kv = v.call
|
|
15
|
+
if data_kv.nil?
|
|
16
|
+
data.delete(k) unless data_orig.is_a?(Hash) and data_orig.key?(k)
|
|
17
|
+
else
|
|
18
|
+
data[k] = data_kv
|
|
19
|
+
end
|
|
20
|
+
elsif v.is_a?(Hash)
|
|
21
|
+
data[k] = set_lambdas(v, data_orig[k])
|
|
22
|
+
elsif v.is_a?(Array)
|
|
23
|
+
v.each.with_index do |v2, i|
|
|
24
|
+
if data_orig.key?(k) and data_orig[k].is_a?(Array) and data_orig[k].size > i
|
|
25
|
+
data[k][i] = set_lambdas(v2, data_orig[k][i])
|
|
26
|
+
else
|
|
27
|
+
data[k][i] = set_lambdas(v2, nil)
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
else
|
|
31
|
+
data[k] = v
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
data = data_orig.nice_merge(data) unless data_orig.nil?
|
|
35
|
+
elsif data.is_a?(Proc)
|
|
36
|
+
data = data.call
|
|
37
|
+
end
|
|
38
|
+
return data
|
|
39
|
+
end
|
|
40
|
+
end
|
data/lib/nice_http.rb
CHANGED
|
@@ -15,6 +15,7 @@ require_relative "nice_http/manage/wait_async_operation"
|
|
|
15
15
|
require_relative "nice_http/utils/basic_authentication"
|
|
16
16
|
require_relative "nice_http/utils/get_value_xml_tag"
|
|
17
17
|
require_relative "nice_http/utils/set_value_xml_tag"
|
|
18
|
+
require_relative "nice_http/utils/set_lambdas"
|
|
18
19
|
require_relative "nice_http/reset"
|
|
19
20
|
require_relative "nice_http/add_stats"
|
|
20
21
|
require_relative "nice_http/defaults"
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: nice_http
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.9.
|
|
4
|
+
version: 1.9.5
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Mario Ruiz
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2023-01-
|
|
11
|
+
date: 2023-01-29 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: nice_hash
|
|
@@ -16,20 +16,20 @@ dependencies:
|
|
|
16
16
|
requirements:
|
|
17
17
|
- - "~>"
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: '1.
|
|
19
|
+
version: '1.18'
|
|
20
20
|
- - ">="
|
|
21
21
|
- !ruby/object:Gem::Version
|
|
22
|
-
version: 1.
|
|
22
|
+
version: 1.18.2
|
|
23
23
|
type: :runtime
|
|
24
24
|
prerelease: false
|
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
|
26
26
|
requirements:
|
|
27
27
|
- - "~>"
|
|
28
28
|
- !ruby/object:Gem::Version
|
|
29
|
-
version: '1.
|
|
29
|
+
version: '1.18'
|
|
30
30
|
- - ">="
|
|
31
31
|
- !ruby/object:Gem::Version
|
|
32
|
-
version: 1.
|
|
32
|
+
version: 1.18.2
|
|
33
33
|
- !ruby/object:Gem::Dependency
|
|
34
34
|
name: rspec
|
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -85,6 +85,7 @@ files:
|
|
|
85
85
|
- lib/nice_http/save_stats.rb
|
|
86
86
|
- lib/nice_http/utils/basic_authentication.rb
|
|
87
87
|
- lib/nice_http/utils/get_value_xml_tag.rb
|
|
88
|
+
- lib/nice_http/utils/set_lambdas.rb
|
|
88
89
|
- lib/nice_http/utils/set_value_xml_tag.rb
|
|
89
90
|
homepage: https://github.com/MarioRuiz/nice_http
|
|
90
91
|
licenses:
|