glia-errors 0.0.0 → 0.0.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 +4 -4
- data/glia-errors.gemspec +1 -1
- data/lib/glia/errors/mapper.rb +23 -10
- data/test_cases/invalid_nested_params_case.json +77 -0
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8336fd0b3da25f1ce3dd3e6b2f61ad4b9e736f391088e1824f6427b5619498b2
|
4
|
+
data.tar.gz: 79481e2446fb498d3f606c118fcbfb2e50df1e16e559e8136bd8a30c5cc84109
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4ea9ab4f9b4e101ea50eb9813a28cc0ff0d221056447e91660e927d3579b531aafb8a1718706ca51ffb09c9bd2556c90c259670590d416b6e602cbbdbcc89389
|
7
|
+
data.tar.gz: e83dede85cf3a57e01066970fbfc653fd28414624fda32173b9397691338c8d5e32a200a4e3f4e36eb0d8f480e97bbab7d0588dc7cc50978c0a1cf9cc8a4e93e
|
data/glia-errors.gemspec
CHANGED
data/lib/glia/errors/mapper.rb
CHANGED
@@ -8,17 +8,18 @@ module Glia
|
|
8
8
|
lambda do |field, _value, message|
|
9
9
|
type =
|
10
10
|
case message
|
11
|
-
when 'must be an array'
|
11
|
+
when 'must be an array', 'must be Array'
|
12
12
|
InvalidTypeError::Types::ARRAY
|
13
|
-
when 'must be an integer'
|
13
|
+
when 'must be an integer', 'must be Integer'
|
14
14
|
InvalidTypeError::Types::INTEGER
|
15
|
-
when 'must be a number', 'must be a float', 'must be a decimal'
|
15
|
+
when 'must be a number', 'must be a float', 'must be a decimal', 'must be Float',
|
16
|
+
'must be BigDecimal'
|
16
17
|
InvalidTypeError::Types::NUMBER
|
17
|
-
when 'must be a hash'
|
18
|
+
when 'must be a hash', 'must be Hash'
|
18
19
|
InvalidTypeError::Types::OBJECT
|
19
|
-
when 'must be boolean'
|
20
|
+
when 'must be boolean', 'must be Boolean'
|
20
21
|
InvalidTypeError::Types::BOOLEAN
|
21
|
-
when 'must be a string'
|
22
|
+
when 'must be a string', 'must be String'
|
22
23
|
InvalidTypeError::Types::STRING
|
23
24
|
end
|
24
25
|
InvalidTypeError.new(field: field, type: type)
|
@@ -52,11 +53,11 @@ module Glia
|
|
52
53
|
if value.is_a?(String)
|
53
54
|
format =
|
54
55
|
case message
|
55
|
-
when 'must be a date'
|
56
|
+
when 'must be a date', 'must be Date'
|
56
57
|
InvalidFormatError::Formats::DATE
|
57
|
-
when 'must be a date time'
|
58
|
+
when 'must be a date time', 'must be DateTime'
|
58
59
|
InvalidFormatError::Formats::DATE_TIME
|
59
|
-
when 'must be a time'
|
60
|
+
when 'must be a time', 'must be Time'
|
60
61
|
InvalidFormatError::Formats::TIME
|
61
62
|
end
|
62
63
|
InvalidFormatError.new(field: field, format: format)
|
@@ -68,16 +69,26 @@ module Glia
|
|
68
69
|
ERROR_MAP = {
|
69
70
|
# InvalidTypeError
|
70
71
|
'must be an array' => INVALID_TYPE_ERROR,
|
72
|
+
'must be Array' => INVALID_TYPE_ERROR,
|
71
73
|
'must be an integer' => INVALID_TYPE_ERROR,
|
74
|
+
'must be Integer' => INVALID_TYPE_ERROR,
|
72
75
|
'must be a number' => INVALID_TYPE_ERROR,
|
73
76
|
'must be a float' => INVALID_TYPE_ERROR,
|
77
|
+
'must be Float' => INVALID_TYPE_ERROR,
|
74
78
|
'must be a decimal' => INVALID_TYPE_ERROR,
|
79
|
+
'must be BigDecimal' => INVALID_TYPE_ERROR,
|
75
80
|
'must be a hash' => INVALID_TYPE_ERROR,
|
81
|
+
'must be Hash' => INVALID_TYPE_ERROR,
|
76
82
|
'must be boolean' => INVALID_TYPE_ERROR,
|
83
|
+
'must be Boolean' => INVALID_TYPE_ERROR,
|
77
84
|
'must be a string' => INVALID_TYPE_ERROR,
|
85
|
+
'must be String' => INVALID_TYPE_ERROR,
|
78
86
|
'must be a date time' => INVALID_DATE_FORMAT_OR_TYPE_ERROR,
|
87
|
+
'must be DateTime' => INVALID_DATE_FORMAT_OR_TYPE_ERROR,
|
79
88
|
'must be a date' => INVALID_DATE_FORMAT_OR_TYPE_ERROR,
|
89
|
+
'must be Date' => INVALID_DATE_FORMAT_OR_TYPE_ERROR,
|
80
90
|
'must be a time' => INVALID_DATE_FORMAT_OR_TYPE_ERROR,
|
91
|
+
'must be Time' => INVALID_DATE_FORMAT_OR_TYPE_ERROR,
|
81
92
|
# InvalidFormatError
|
82
93
|
'is in invalid format' => INVALID_FORMAT_ERROR,
|
83
94
|
'is not a valid UUID' => INVALID_UUID_ERROR,
|
@@ -132,7 +143,9 @@ module Glia
|
|
132
143
|
field_value = output[field]
|
133
144
|
acc[field] =
|
134
145
|
if field_messages.is_a?(Hash)
|
135
|
-
|
146
|
+
# Wrap result in array as by defined structure each field has an array of errors.
|
147
|
+
# This is not needed for the `else` case as dry-validation already provides an array.
|
148
|
+
[from_dry_validation_result_rec(field_value, field_messages, error_map)]
|
136
149
|
else
|
137
150
|
field_messages.map do |message|
|
138
151
|
from_dry_validation_error(field, field_value, message, error_map)
|
@@ -0,0 +1,77 @@
|
|
1
|
+
{
|
2
|
+
"input": {
|
3
|
+
"object": {
|
4
|
+
"invalid_nested_object_value": "invalid"
|
5
|
+
},
|
6
|
+
"array": [
|
7
|
+
{
|
8
|
+
"invalid_nested_array_value": "invalid"
|
9
|
+
},
|
10
|
+
{
|
11
|
+
"invalid_nested_array_value": "valid"
|
12
|
+
},
|
13
|
+
{
|
14
|
+
"invalid_nested_array_value": "invalid"
|
15
|
+
}
|
16
|
+
]
|
17
|
+
},
|
18
|
+
"expectation": {
|
19
|
+
"type": "input_validation_error",
|
20
|
+
"ref": "https://example.com/errors/input_validation_error.html",
|
21
|
+
"error_details": {
|
22
|
+
"object": [
|
23
|
+
{
|
24
|
+
"type": "input_validation_error",
|
25
|
+
"ref": "https://example.com/errors/input_validation_error.html",
|
26
|
+
"error_details": {
|
27
|
+
"invalid_nested_object_value": [
|
28
|
+
{
|
29
|
+
"type": "invalid_value_error",
|
30
|
+
"ref": "https://example.com/errors/invalid_value_error.html",
|
31
|
+
"message": "Invalid nested object value is invalid"
|
32
|
+
}
|
33
|
+
]
|
34
|
+
}
|
35
|
+
}
|
36
|
+
],
|
37
|
+
"array": [
|
38
|
+
{
|
39
|
+
"type": "input_validation_error",
|
40
|
+
"ref": "https://example.com/errors/input_validation_error.html",
|
41
|
+
"error_details": {
|
42
|
+
"0": [
|
43
|
+
{
|
44
|
+
"type": "input_validation_error",
|
45
|
+
"ref": "https://example.com/errors/input_validation_error.html",
|
46
|
+
"error_details": {
|
47
|
+
"invalid_nested_array_value": [
|
48
|
+
{
|
49
|
+
"type": "invalid_value_error",
|
50
|
+
"ref": "https://example.com/errors/invalid_value_error.html",
|
51
|
+
"message": "Invalid nested array value is invalid"
|
52
|
+
}
|
53
|
+
]
|
54
|
+
}
|
55
|
+
}
|
56
|
+
],
|
57
|
+
"2": [
|
58
|
+
{
|
59
|
+
"type": "input_validation_error",
|
60
|
+
"ref": "https://example.com/errors/input_validation_error.html",
|
61
|
+
"error_details": {
|
62
|
+
"invalid_nested_array_value": [
|
63
|
+
{
|
64
|
+
"type": "invalid_value_error",
|
65
|
+
"ref": "https://example.com/errors/invalid_value_error.html",
|
66
|
+
"message": "Invalid nested array value is invalid"
|
67
|
+
}
|
68
|
+
]
|
69
|
+
}
|
70
|
+
}
|
71
|
+
]
|
72
|
+
}
|
73
|
+
}
|
74
|
+
]
|
75
|
+
}
|
76
|
+
}
|
77
|
+
}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: glia-errors
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Glia TechMovers
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-01-
|
11
|
+
date: 2021-01-19 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: ''
|
14
14
|
email:
|
@@ -39,6 +39,7 @@ files:
|
|
39
39
|
- lib/glia/errors/validation_errors.rb
|
40
40
|
- test_cases/invalid_format_error_case.json
|
41
41
|
- test_cases/invalid_length_error_case.json
|
42
|
+
- test_cases/invalid_nested_params_case.json
|
42
43
|
- test_cases/invalid_number_error_case.json
|
43
44
|
- test_cases/invalid_type_error_case.json
|
44
45
|
- test_cases/invalid_value_error_case.json
|
@@ -62,7 +63,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
62
63
|
- !ruby/object:Gem::Version
|
63
64
|
version: '0'
|
64
65
|
requirements: []
|
65
|
-
rubygems_version: 3.0.
|
66
|
+
rubygems_version: 3.0.6
|
66
67
|
signing_key:
|
67
68
|
specification_version: 4
|
68
69
|
summary: Glia REST API errors
|