lhs 0.4.0 → 1.0.0
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/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
|