lhs 14.3.0 → 14.3.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +28 -1
- data/lib/lhs/concerns/proxy/problems.rb +2 -1
- data/lib/lhs/version.rb +1 -1
- data/spec/item/access_errors_spec.rb +31 -0
- metadata +3 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 592b02ea75646240c5b91bedd2c780898ed87a4b
|
4
|
+
data.tar.gz: b91803f278dbdc05c0b1c5405a75d7daa3191116
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 61c954708c2abf0147112c0d34ec044ef0f9dd4e53f75b26db3a26f430b138ff203127e1dc49a45066fe02c1cce9806a6b0dab7338fc207fc8b87547890aa29a
|
7
|
+
data.tar.gz: 088c03a54f417a2844bc6a85e318e42ea0d2a12540cc3745a2c1c20940448848c2760413eb180a5b8c0154b829a737eb76a04ab4296036c45a1cabad487039ce
|
data/README.md
CHANGED
@@ -760,7 +760,7 @@ or with parameters:
|
|
760
760
|
|
761
761
|
In order to validate LHS::Records before persisting them, you can use the `valid?` (`validate` alias) method.
|
762
762
|
|
763
|
-
The specific endpoint has to support validations without
|
763
|
+
The specific endpoint has to support validations without persistance. An endpoint has to be enabled (opt-in) for validations in the service configuration.
|
764
764
|
|
765
765
|
```ruby
|
766
766
|
class User < LHS::Record
|
@@ -861,6 +861,33 @@ lhs.errors.fallback_message
|
|
861
861
|
### Know issue with `ActiveModel::Validations`
|
862
862
|
If you are using `ActiveModel::Validations` and add errors to the LHS::Record instance - as described above - then those errors will be overwritten by the errors from `ActiveModel::Validations` when using `save` or `valid?`. [Open issue](https://github.com/local-ch/lhs/issues/159)
|
863
863
|
|
864
|
+
### Blocking errors, original "errors"
|
865
|
+
|
866
|
+
The fact that records could have errors is not coupled to any response status code.
|
867
|
+
|
868
|
+
LHS makes errors accessible, if they are present:
|
869
|
+
|
870
|
+
```
|
871
|
+
{
|
872
|
+
company_name: 'localsearch',
|
873
|
+
field_errors: [{
|
874
|
+
code: 'REQUIRED_PROPERTY_VALUE',
|
875
|
+
path: ['place', 'opening_hours']
|
876
|
+
}
|
877
|
+
}
|
878
|
+
```
|
879
|
+
|
880
|
+
LHS makes those errors available when accessing `.errors`:
|
881
|
+
|
882
|
+
```ruby
|
883
|
+
presence = Presence.create(
|
884
|
+
place: { href: 'http://storage/places/1' }
|
885
|
+
)
|
886
|
+
|
887
|
+
presence.errors.any? # true
|
888
|
+
presence.place.errors.messages[:opening_hours] # ['REQUIRED_PROPERTY_VALUE']
|
889
|
+
```
|
890
|
+
|
864
891
|
### Non blocking validation errors, so called warnings
|
865
892
|
|
866
893
|
In some cases, you need non blocking meta information about potential problems with the created record, so called warnings.
|
@@ -14,7 +14,8 @@ class LHS::Proxy
|
|
14
14
|
end
|
15
15
|
|
16
16
|
def errors
|
17
|
-
|
17
|
+
response = _raw.present? && _raw.is_a?(Hash) && _raw[:field_errors] ? OpenStruct.new(body: _raw.to_json) : nil
|
18
|
+
@errors ||= LHS::Problems::Errors.new(response, record)
|
18
19
|
end
|
19
20
|
|
20
21
|
def warnings
|
data/lib/lhs/version.rb
CHANGED
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'rails_helper'
|
2
|
+
|
3
|
+
describe LHS::Item do
|
4
|
+
|
5
|
+
context 'make errors available' do
|
6
|
+
|
7
|
+
before(:each) do
|
8
|
+
class Presence < LHS::Record
|
9
|
+
endpoint 'http://opm/presences'
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
let(:place_href) { 'http://datastore/places/1' }
|
14
|
+
|
15
|
+
it 'makes errors available no matter the response code' do
|
16
|
+
stub_request(:post, "http://opm/presences")
|
17
|
+
.to_return(
|
18
|
+
status: 200,
|
19
|
+
body: {
|
20
|
+
place: { href: place_href },
|
21
|
+
field_errors: [{
|
22
|
+
code: 'REQUIRED_PROPERTY_VALUE',
|
23
|
+
path: ['place', 'opening_hours']
|
24
|
+
}]
|
25
|
+
}.to_json
|
26
|
+
)
|
27
|
+
presence = Presence.create(place: { href: place_href })
|
28
|
+
expect(presence.errors.any?).to be true
|
29
|
+
end
|
30
|
+
end
|
31
|
+
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: 14.3.
|
4
|
+
version: 14.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- https://github.com/local-ch/lhs/graphs/contributors
|
@@ -321,6 +321,7 @@ files:
|
|
321
321
|
- spec/dummy/public/500.html
|
322
322
|
- spec/dummy/public/favicon.ico
|
323
323
|
- spec/endpoint/for_url_spec.rb
|
324
|
+
- spec/item/access_errors_spec.rb
|
324
325
|
- spec/item/accessors_spec.rb
|
325
326
|
- spec/item/add_error_spec.rb
|
326
327
|
- spec/item/becomes_spec.rb
|
@@ -499,6 +500,7 @@ test_files:
|
|
499
500
|
- spec/dummy/public/500.html
|
500
501
|
- spec/dummy/public/favicon.ico
|
501
502
|
- spec/endpoint/for_url_spec.rb
|
503
|
+
- spec/item/access_errors_spec.rb
|
502
504
|
- spec/item/accessors_spec.rb
|
503
505
|
- spec/item/add_error_spec.rb
|
504
506
|
- spec/item/becomes_spec.rb
|