http_store 0.3.6 → 0.3.7
Sign up to get free protection for your applications and to get access to all the features.
- 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]
|