http_store 0.3.6 → 0.3.7
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/Gemfile.lock +1 -1
- data/lib/http_store/client.rb +1 -5
- data/lib/http_store/helpers/storable.rb +14 -11
- data/lib/http_store/middleware/request_log.rb +2 -1
- data/lib/http_store/version.rb +1 -1
- data/lib/http_store.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: 13a85e318867138cd3a9179f389281b76f045a3f227bb62be21e293c383d3d09
|
4
|
+
data.tar.gz: 9377610891824c3013c519fd28a7377063b4b3eb89376bb7535a5e8ab9cb5dd0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9cc6c6fb3481294ef589d2bfe2505edc3c14e3aff164ea7db755d704c0287a68919baf48cf11e6f11b940d37d915c7762f2584e549a7ebe5579a05f2c06f1230
|
7
|
+
data.tar.gz: 3ef74302c890bf5b32dcabab68c925e49fa44f27ca0fd77b42c05237b7b357236cf3db4e830413cb47257fc2da37fae608fe831ea808305658f002d79a176e86
|
data/Gemfile.lock
CHANGED
data/lib/http_store/client.rb
CHANGED
@@ -17,7 +17,7 @@ module HttpStore
|
|
17
17
|
return unless request_valid?
|
18
18
|
|
19
19
|
# exist request or not force, return
|
20
|
-
load_storeable_record and return if
|
20
|
+
load_storeable_record and return if use_cache?
|
21
21
|
|
22
22
|
execute # send request
|
23
23
|
raise HttpStore::RequestError, 'response_obj is nil' if response_obj.nil?
|
@@ -65,10 +65,6 @@ module HttpStore
|
|
65
65
|
e.response
|
66
66
|
# :nocov:
|
67
67
|
end
|
68
|
-
|
69
|
-
def json_safe_parse(str)
|
70
|
-
JSON.parse(str) rescue str
|
71
|
-
end
|
72
68
|
end
|
73
69
|
end
|
74
70
|
|
@@ -6,7 +6,7 @@ module HttpStore
|
|
6
6
|
def storeable_record
|
7
7
|
return unless HttpStore.config.store_enable
|
8
8
|
|
9
|
-
@storeable_record ||= HttpStore.config.store_class.find_by(request_digest: request_digest, response_valid: true)
|
9
|
+
@storeable_record ||= HttpStore.config.store_class.find_by(request_digest: @meta.request_digest, response_valid: true)
|
10
10
|
end
|
11
11
|
|
12
12
|
def load_storeable_record
|
@@ -14,21 +14,24 @@ module HttpStore
|
|
14
14
|
|
15
15
|
attrs =
|
16
16
|
storeable_record.attributes.slice(*HttpStore::ALL_KEYS).map do |k, v|
|
17
|
-
[k, v.is_a?(String) ?
|
17
|
+
[k, v.is_a?(String) ? json_safe_parse(v) : v]
|
18
18
|
end.to_h
|
19
19
|
|
20
|
-
@meta.parent_id = storeable_record.id
|
21
20
|
@meta.reverse_merge! attrs
|
21
|
+
@meta.parent_id = storeable_record.id
|
22
22
|
end
|
23
23
|
|
24
24
|
# you can rewrite this callback, to store the request
|
25
25
|
def store_request
|
26
26
|
return unless HttpStore.config.store_enable
|
27
27
|
|
28
|
-
@
|
29
|
-
@storeable_record
|
30
|
-
@storeable_record.
|
31
|
-
|
28
|
+
@meta.parent_id = storeable_record.id if use_cache?
|
29
|
+
@storeable_record = HttpStore.config.store_class.new(storable_meta)
|
30
|
+
@storeable_record.save!
|
31
|
+
end
|
32
|
+
|
33
|
+
def use_cache?
|
34
|
+
@use_cache ||= !@meta.force && storeable_record.present?
|
32
35
|
end
|
33
36
|
|
34
37
|
def storable_meta
|
@@ -41,10 +44,6 @@ module HttpStore
|
|
41
44
|
end.to_h
|
42
45
|
end
|
43
46
|
|
44
|
-
def re_storable(value)
|
45
|
-
|
46
|
-
end
|
47
|
-
|
48
47
|
def storable(value)
|
49
48
|
case value
|
50
49
|
when Hash
|
@@ -62,6 +61,10 @@ module HttpStore
|
|
62
61
|
def storable_string(str)
|
63
62
|
str.length > STRING_LIMIT_SIZE ? { digest: Digest::SHA1.hexdigest(str), origin: str[0..1000] } : str
|
64
63
|
end
|
64
|
+
|
65
|
+
def json_safe_parse(str)
|
66
|
+
JSON.parse(str) rescue str
|
67
|
+
end
|
65
68
|
end
|
66
69
|
end
|
67
70
|
end
|
@@ -31,7 +31,8 @@ module HttpStore
|
|
31
31
|
http_method: request.request_method,
|
32
32
|
data: request.params,
|
33
33
|
headers: request.headers.select { |k, _v| k.start_with? 'HTTP_' }.to_h,
|
34
|
-
query_params: request.query_parameters
|
34
|
+
query_params: request.query_parameters,
|
35
|
+
force: true,
|
35
36
|
}
|
36
37
|
end
|
37
38
|
|
data/lib/http_store/version.rb
CHANGED
data/lib/http_store.rb
CHANGED
@@ -10,7 +10,7 @@ module HttpStore
|
|
10
10
|
|
11
11
|
REQUEST_KEYS = %w[http_method url data_type headers query_params data other_params force request_valid]
|
12
12
|
RESPONSE_KEYS = %w[status_code response response_headers response_data response_valid]
|
13
|
-
META_KEYS = %w[request_digest client_type requestable_id requestable_type]
|
13
|
+
META_KEYS = %w[request_digest client_type parent_id requestable_id requestable_type]
|
14
14
|
TMP_KEYS = %w[requestable response_obj]
|
15
15
|
|
16
16
|
DIGEST_KEYS = %w[http_method url data_type data other_params requestable_id requestable_type]
|