nice_http 1.9.3 → 1.9.4
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 +21 -17
- 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: 7f50dd3a4c167f9acf0b21e582104cb2058b726d208c57e87a0c0a9b0b12eb16
|
4
|
+
data.tar.gz: 2d1d4a1542e7dad443220edb40708ed19d950315e7b96f09e8b881cbb23c02e1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 60846d733bb0bc642778dd02b043055373eed2d567abf29bea562b9bcfb20be2ccf4b791c5839d7d9ba9836656a4d8fb34ca55ff1fcec7d92c032ecd54496330
|
7
|
+
data.tar.gz: 70bd6761feac13b037b5974ed1546c53c78c3a7fc225040819df3700ce1b57697c36fc9d701f8d4b9b2cf4faa0e55d881e4736687d6661a209d207facfc8a297
|
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
|
```
|
@@ -16,7 +16,7 @@ module NiceHttpManageRequest
|
|
16
16
|
|
17
17
|
@prev_request = Hash.new() if @prev_request.nil?
|
18
18
|
@defaults_request = self.class.requests if @defaults_request.nil? and self.class.requests.is_a?(Hash)
|
19
|
-
@request = Hash.new()
|
19
|
+
@request = Hash.new()
|
20
20
|
@defaults_request = Hash.new() unless @defaults_request.is_a?(Hash)
|
21
21
|
self.class.request = @request
|
22
22
|
|
@@ -128,15 +128,27 @@ module NiceHttpManageRequest
|
|
128
128
|
if arguments[0].include?(:values) and !arguments[0].include?(:values_for)
|
129
129
|
arguments[0][:values_for] = arguments[0][:values]
|
130
130
|
end
|
131
|
-
|
131
|
+
values_for_orig = {}
|
132
|
+
if @defaults_request.key?(:values_for) and @defaults_request.is_a?(Hash) and @defaults_request[:values_for].size > 0
|
133
|
+
if arguments[0].include?(:values_for)
|
134
|
+
values_for_orig = arguments[0][:values_for].deep_copy
|
135
|
+
arguments[0][:values_for] = @defaults_request[:values_for].merge(arguments[0][:values_for])
|
136
|
+
else
|
137
|
+
arguments[0][:values_for] = @defaults_request[:values_for].dup
|
138
|
+
end
|
139
|
+
end
|
140
|
+
|
132
141
|
if @values_for.size > 0
|
133
142
|
if arguments[0][:values_for].nil?
|
134
|
-
arguments[0][:values_for] = @values_for.
|
143
|
+
arguments[0][:values_for] = @values_for.deep_copy
|
135
144
|
else
|
136
|
-
|
145
|
+
values_for_copy = @values_for.deep_copy
|
146
|
+
arguments[0][:values_for] = values_for_copy.nice_merge(arguments[0][:values_for])
|
137
147
|
end
|
138
148
|
end
|
139
|
-
|
149
|
+
if arguments[0].include?(:values_for) and arguments[0][:values_for].size > 0 and arguments[0][:values_for].is_a?(Hash)
|
150
|
+
arguments[0][:values_for] = NiceHttpUtils.set_lambdas(arguments[0][:values_for], values_for_orig)
|
151
|
+
end
|
140
152
|
if content_type_included and (!headers_t["Content-Type"][/text\/xml/].nil? or
|
141
153
|
!headers_t["Content-Type"]["application/soap+xml"].nil? or
|
142
154
|
!headers_t["Content-Type"][/application\/jxml/].nil?)
|
@@ -160,18 +172,10 @@ module NiceHttpManageRequest
|
|
160
172
|
}
|
161
173
|
end
|
162
174
|
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
|
175
|
+
data_orig = data.deep_copy
|
176
|
+
data = data.nice_merge(@defaults_request[:data]) if @defaults_request.key?(:data)
|
177
|
+
data = NiceHttpUtils.set_lambdas(data, data_orig)
|
178
|
+
|
175
179
|
if arguments[0].include?(:values_for)
|
176
180
|
data = data.set_values(arguments[0][:values_for])
|
177
181
|
end
|
@@ -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
|
+
#puts "set_lambdas data: #{data.inspect}" #jal
|
10
|
+
#puts "set lambdas data_orig: #{data_orig.inspect}"
|
11
|
+
data = data.dup
|
12
|
+
data_orig = data_orig.dup unless data_orig.nil?
|
13
|
+
|
14
|
+
data.each do |k, v|
|
15
|
+
if v.is_a?(Proc)
|
16
|
+
data_kv = v.call
|
17
|
+
if data_kv.nil?
|
18
|
+
data.delete(k) unless data_orig.is_a?(Hash) and data_orig.key?(k)
|
19
|
+
else
|
20
|
+
data[k] = data_kv
|
21
|
+
end
|
22
|
+
elsif v.is_a?(Hash)
|
23
|
+
data[k] = set_lambdas(v, data_orig[k])
|
24
|
+
elsif v.is_a?(Array)
|
25
|
+
v.each.with_index do |v2, i|
|
26
|
+
if data_orig.key?(k) and data_orig[k].is_a?(Array) and data_orig[k].size > i
|
27
|
+
data[k][i] = set_lambdas(v2, data_orig[k][i])
|
28
|
+
else
|
29
|
+
data[k][i] = set_lambdas(v2, nil)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
else
|
33
|
+
data[k] = v
|
34
|
+
end
|
35
|
+
end
|
36
|
+
data = data_orig.nice_merge(data) unless data_orig.nil?
|
37
|
+
#puts "set_lambas: #{data.inspect}"
|
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.4
|
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-27 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.1
|
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.1
|
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:
|