excon-hypermedia 0.5.0 → 0.5.1
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f2246dc77b42f4b8b4d785f2436fcdd2baa15439
|
4
|
+
data.tar.gz: 3263ec98d4fa234ac388bde913084645c5832fc5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 34d5efb5420335cfcdcf89fa6600d504c2e14afa7dc2a6baa1bedb7033640a9fed05f73bb942713c2ee4d6d8980b3eb38b37b6bef6ac87967508fce5081c0e35
|
7
|
+
data.tar.gz: 34172c4a37c20c9d9d887f97f48d7a560e36717f590a59d38a4149f34f728ba6184691afeeaee81553b242730a06082c0823650bf82e5c0e336bf5ba813e22f3
|
@@ -15,10 +15,10 @@ module Excon
|
|
15
15
|
def request_call(datum)
|
16
16
|
@datum = datum
|
17
17
|
|
18
|
-
return super unless datum[:hcp] == true && datum[:method] == :get &&
|
18
|
+
return super unless datum[:hcp] == true && datum[:method] == :get && resource
|
19
19
|
|
20
20
|
datum[:response] = {
|
21
|
-
body:
|
21
|
+
body: resource.to_json,
|
22
22
|
hcp: true,
|
23
23
|
headers: content_type_header,
|
24
24
|
remote_ip: '127.0.0.1',
|
@@ -30,22 +30,16 @@ module Excon
|
|
30
30
|
|
31
31
|
private
|
32
32
|
|
33
|
-
def
|
34
|
-
|
35
|
-
break if (@embedded = object_to_embedded(object))
|
36
|
-
end
|
37
|
-
|
38
|
-
@embedded
|
33
|
+
def resource
|
34
|
+
@resource ||= embedded.find { |name, _| name == relation_name }.to_a[1]
|
39
35
|
end
|
40
36
|
|
41
|
-
def
|
42
|
-
|
37
|
+
def relation_name
|
38
|
+
datum.dig(:hcp_params, :relation)
|
39
|
+
end
|
43
40
|
|
44
|
-
|
45
|
-
|
46
|
-
elsif object.dig('_links', 'self', 'href') == uri.to_s
|
47
|
-
object
|
48
|
-
end
|
41
|
+
def embedded
|
42
|
+
datum.dig(:hcp_params, :embedded)
|
49
43
|
end
|
50
44
|
|
51
45
|
def content_type_header
|
@@ -58,19 +58,20 @@ module Excon
|
|
58
58
|
raise UnknownRelationError, "unknown relation: #{name}"
|
59
59
|
end
|
60
60
|
|
61
|
-
options = rel_params(params.first.to_h)
|
61
|
+
options = rel_params(name, params.first.to_h)
|
62
62
|
|
63
63
|
link.respond_to?(:to_ary) ? link.map { |l| l.rel(options) } : link.rel(options)
|
64
64
|
end
|
65
65
|
|
66
|
-
def rel_params(params)
|
66
|
+
def rel_params(name, params)
|
67
67
|
params.merge(
|
68
|
-
hypermedia: true,
|
69
68
|
hcp: (params[:hcp].nil? ? response.data[:hcp] : params[:hcp]),
|
70
69
|
hcp_params: {
|
71
70
|
content_type: response.headers['Content-Type'],
|
72
|
-
embedded: resource._embedded
|
73
|
-
|
71
|
+
embedded: resource._embedded.to_h,
|
72
|
+
relation: name
|
73
|
+
},
|
74
|
+
hypermedia: true
|
74
75
|
)
|
75
76
|
end
|
76
77
|
end
|