lhs 1.3.0 → 1.3.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4d2fe9d241de70e1547f04ecc340becf4758a22e
4
- data.tar.gz: 9203ee6326411236cf93485beb289862fd3ec060
3
+ metadata.gz: bd943de16b65c840dc1b4b5c05ff7a8909dcf2d7
4
+ data.tar.gz: ef07ef221571d7de7c2a426983b1fe060b2868c9
5
5
  SHA512:
6
- metadata.gz: 6d5169f5bc32a55a05e0ed1ffbe5e236e79f65714a7f7ae177516517c0dbd3d6f06082dfb5393e3188294db94b9fb958fe9bda6459ef1bfc3da77e13a8fc4c2f
7
- data.tar.gz: 6d86b6cc756b977d07a991794b91665b82b0e426ff5d0321a1f4dcad0bfdbdfb1ea4bbdce65adf62015675c07d54e1ae25c7736c192da863f9ed7131c4b2e56d
6
+ metadata.gz: c1e7a9dec8966d5fcef164e81ab77b8e39e8d07d2991ccd94794c606b1615f80f1a312c0799a7d0e516cee408a2171ea312ea68013ce6148cfbd74e7f0ac9004
7
+ data.tar.gz: 45ac1316587e3b26fe8c21bee179fe0a021cb7616eac8ec9cebf2c2869d646db007864cfa2cb8d2200c261c079d2ba5f86b370d327b06df8347e8d769883d995
@@ -60,14 +60,25 @@ class LHS::Service
60
60
  else
61
61
  url_option_for(data, key)
62
62
  end
63
+ addition = load_includes(includes, options, key, data)
64
+ extend(data, addition, key)
65
+ end
66
+
67
+ # Load additional resources that are requested with include
68
+ def load_includes(includes, options, key, data)
63
69
  service = service_for_options(options) || self
64
70
  options = convert_options_to_endpoints(options) if service_for_options(options)
65
- addition = if (further_keys = includes.fetch(key, nil) if includes.is_a? Hash)
66
- service.class.includes(further_keys).instance.request(options)
71
+ further_keys = includes.fetch(key, nil) if includes.is_a? Hash
72
+ service_class = if further_keys
73
+ service.class.includes(further_keys)
67
74
  else
68
- service.class.includes(nil).instance.request(options)
75
+ service.class.includes(nil)
76
+ end
77
+ begin
78
+ service_class.instance.request(options)
79
+ rescue LHC::NotFound
80
+ LHS::Data.new({}, data, service)
69
81
  end
70
- extend(data, addition, key)
71
82
  end
72
83
 
73
84
  # Merge explicit params nested in 'params' namespace with original hash.
@@ -1,3 +1,3 @@
1
1
  module LHS
2
- VERSION = "1.3.0"
2
+ VERSION = "1.3.1"
3
3
  end
@@ -115,4 +115,27 @@ describe LHS::Service do
115
115
  end
116
116
  end
117
117
  end
118
+
119
+ context 'links pointing to nowhere' do
120
+
121
+ it 'sets nil for links that cannot be included' do
122
+ class Feedback < LHS::Service
123
+ endpoint ':datastore/feedbacks'
124
+ endpoint ':datastore/feedbacks/:id'
125
+ end
126
+
127
+ stub_request(:get, "#{datastore}/feedbacks/123")
128
+ .to_return(status: 200, body: {
129
+ 'href' => "#{datastore}/feedbacks/-Sc4_pYNpqfsudzhtivfkA",
130
+ 'campaign' => { 'href' => "#{datastore}/content-ads/51dfc5690cf271c375c5a12d" }
131
+ }.to_json)
132
+
133
+ stub_request(:get, "#{datastore}/content-ads/51dfc5690cf271c375c5a12d")
134
+ .to_return(status: 404)
135
+
136
+ feedback = Feedback.includes(campaign: :entry).find(123)
137
+ expect(feedback.campaign._raw.keys.count).to eq 1
138
+ expect(feedback.campaign.href).to be
139
+ end
140
+ end
118
141
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lhs
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - local.ch