lhs 0.4.0 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/docs/services.md +3 -1
- data/lib/lhs/concerns/service/endpoints.rb +0 -1
- data/lib/lhs/data.rb +1 -1
- data/lib/lhs/version.rb +1 -1
- data/spec/collection/meta_data_spec.rb +2 -0
- data/spec/collection/without_object_items_spec.rb +1 -1
- data/spec/service/endpoint_options_spec.rb +1 -1
- data/spec/service/endpoints_spec.rb +15 -0
- data/spec/service/find_by_spec.rb +2 -0
- data/spec/service/find_spec.rb +2 -0
- data/spec/service/includes_spec.rb +1 -0
- data/spec/service/mapping_spec.rb +5 -4
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 40403e2ae293ace8b6504d10b3f25ed4696b3fc4
|
4
|
+
data.tar.gz: 5cb53fbd0fb4742d5b4a0ddf70313b56f9c67de9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5ad6899b426c29d006b48f3fa7d3cada987a55a7311c8c7d7ab8a2dc38ebeb661b2f359d01a6b9c92dddfb438568cb35cbdce6bbef5aa537b9d7a4d8ce298b08
|
7
|
+
data.tar.gz: 3e540dccae57014ded112e0237a330ede9fcd4e91e9f702eef735edf3f9fde93d7fa1ddb735941b08af84f7cd80041db25e48262eea4fc8a6cc580c746dc1c95
|
data/docs/services.md
CHANGED
@@ -18,7 +18,9 @@ You can also add request options for an endpoint (see following example).
|
|
18
18
|
class Feedback < LHS::Service
|
19
19
|
|
20
20
|
endpoint ':datastore/v2/content-ads/:campaign_id/feedbacks'
|
21
|
+
endpoint ':datastore/v2/content-ads/:campaign_id/feedbacks/:id'
|
21
22
|
endpoint ':datastore/v2/feedbacks', cache: true, cache_expires_in: 1.day
|
23
|
+
endpoint ':datastore/v2/feedbacks/:id', cache: true, cache_expires_in: 1.day
|
22
24
|
|
23
25
|
end
|
24
26
|
```
|
@@ -215,7 +217,7 @@ To influence how data is accessed/provied, you can use mapping to either map dee
|
|
215
217
|
class LocalEntry < LHS::Service
|
216
218
|
endpoint ':datastore/v2/local-entries'
|
217
219
|
|
218
|
-
map :name, ->
|
220
|
+
map :name, ->{ addresses.first.business.identities.first.name }
|
219
221
|
|
220
222
|
end
|
221
223
|
```
|
data/lib/lhs/data.rb
CHANGED
data/lib/lhs/version.rb
CHANGED
@@ -31,9 +31,11 @@ describe LHS::Collection do
|
|
31
31
|
LHC.config.placeholder('datastore', datastore)
|
32
32
|
class Feedback < LHS::Service
|
33
33
|
endpoint ':datastore/feedbacks'
|
34
|
+
endpoint ':datastore/feedbacks/:id'
|
34
35
|
end
|
35
36
|
class User < LHS::Service
|
36
37
|
endpoint ':datastore/users'
|
38
|
+
endpoint ':datastore/users/:id'
|
37
39
|
end
|
38
40
|
end
|
39
41
|
|
@@ -6,7 +6,7 @@ describe LHS::Service do
|
|
6
6
|
|
7
7
|
before(:each) do
|
8
8
|
class SomeService < LHS::Service
|
9
|
-
endpoint 'backend/v2/feedbacks', cache_expires_in: 1.day, retry: 2, cache: true
|
9
|
+
endpoint 'backend/v2/feedbacks/:id', cache_expires_in: 1.day, retry: 2, cache: true
|
10
10
|
end
|
11
11
|
end
|
12
12
|
|
@@ -43,6 +43,21 @@ describe LHS::Service do
|
|
43
43
|
).to eq ':datastore/feedbacks'
|
44
44
|
end
|
45
45
|
|
46
|
+
context 'compute url from endpoint' do
|
47
|
+
|
48
|
+
before(:each) do
|
49
|
+
class Feedback < LHS::Service
|
50
|
+
endpoint ':datastore/feedbacks'
|
51
|
+
endpoint ':datastore/feedbacks/:id'
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
it 'computes urls WITHOUT handling id separate' do
|
56
|
+
stub_request(:get, "#{datastore}/feedbacks/1").to_return(status: 200)
|
57
|
+
Feedback.find(1)
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
46
61
|
context 'unsorted endpoints' do
|
47
62
|
|
48
63
|
before(:each) do
|
@@ -7,7 +7,9 @@ describe LHS::Service do
|
|
7
7
|
LHC.config.placeholder(:datastore, datastore)
|
8
8
|
class SomeService < LHS::Service
|
9
9
|
endpoint ':datastore/content-ads/:campaign_id/feedbacks'
|
10
|
+
endpoint ':datastore/content-ads/:campaign_id/feedbacks/:id'
|
10
11
|
endpoint ':datastore/feedbacks'
|
12
|
+
endpoint ':datastore/feedbacks/:id'
|
11
13
|
end
|
12
14
|
end
|
13
15
|
|
data/spec/service/find_spec.rb
CHANGED
@@ -8,7 +8,9 @@ describe LHS::Service do
|
|
8
8
|
LHC.config.placeholder(:datastore, datastore)
|
9
9
|
class SomeService < LHS::Service
|
10
10
|
endpoint ':datastore/content-ads/:campaign_id/feedbacks'
|
11
|
+
endpoint ':datastore/content-ads/:campaign_id/feedbacks/:id'
|
11
12
|
endpoint ':datastore/feedbacks'
|
13
|
+
endpoint ':datastore/feedbacks/:id'
|
12
14
|
end
|
13
15
|
end
|
14
16
|
|
@@ -10,12 +10,13 @@ describe LHS::Service do
|
|
10
10
|
LHC.config.placeholder('datastore', datastore)
|
11
11
|
class LocalEntry < LHS::Service
|
12
12
|
endpoint ':datastore/local-entries'
|
13
|
+
endpoint ':datastore/local-entries/:id'
|
13
14
|
end
|
14
15
|
end
|
15
16
|
|
16
17
|
it 'maps some attr accessors to another target (proxy)' do
|
17
18
|
class LocalEntry < LHS::Service
|
18
|
-
map :name, ->
|
19
|
+
map :name, ->{ addresses.first.business.identities.first.name }
|
19
20
|
end
|
20
21
|
stub_request(:get, "#{datastore}/local-entries/1")
|
21
22
|
.to_return(status: 200, body: {addresses: [{business: {identities: [{name: 'Löwenzorn'}]}}]}.to_json)
|
@@ -25,7 +26,7 @@ describe LHS::Service do
|
|
25
26
|
|
26
27
|
it 'maps for root_item even if that item is nested in a root collection' do
|
27
28
|
class LocalEntry < LHS::Service
|
28
|
-
map :name, ->
|
29
|
+
map :name, ->{ addresses.first.business.identities.first.name }
|
29
30
|
end
|
30
31
|
stub_request(:get, "#{datastore}/local-entries/1?limit=1")
|
31
32
|
.to_return(status: 200, body: {items: [{addresses: [{business: {identities: [{name: 'Löwenzorn'}]}}]}]}.to_json)
|
@@ -35,7 +36,7 @@ describe LHS::Service do
|
|
35
36
|
|
36
37
|
it 'return data proxy in case of item or collection' do
|
37
38
|
class LocalEntry < LHS::Service
|
38
|
-
map :business, ->
|
39
|
+
map :business, ->{ addresses.first.business }
|
39
40
|
end
|
40
41
|
stub_request(:get, "#{datastore}/local-entries/1")
|
41
42
|
.to_return(status: 200, body: {addresses: [{business: {identities: [{name: 'Löwenzorn'}]}}]}.to_json)
|
@@ -46,7 +47,7 @@ describe LHS::Service do
|
|
46
47
|
it 'clones mappings when using include' do
|
47
48
|
class Agb < LHS::Service
|
48
49
|
endpoint ":datastore/agbs/active?agb_type=CC_TOU"
|
49
|
-
map :pdf_url, ->
|
50
|
+
map :pdf_url, -> { self['binary_url_pdf_de'] }
|
50
51
|
end
|
51
52
|
|
52
53
|
preceding_agb_url = "#{datastore}/agbs/547f0b461c266c4830ea6cea"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lhs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- local.ch
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-10-
|
11
|
+
date: 2015-10-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: lhc
|