countriesdb-validator 1.0.0 → 1.0.2
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/lib/countriesdb/validator.rb +18 -3
- data/lib/countriesdb/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 026bd1abf019234cfa5a5e08a050b3ab17c3e99e319bf57069443c3db9dbc863
|
|
4
|
+
data.tar.gz: aa98cd6d11a466069cce9e09bbf4338b98e47e27209f4201965ce5a0ebe57950
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 6b6aeebf408fa743eec4c54854169d179359bed45299de778ae5935a7d9d4b398a580ed3bd874ca5e96ce06f3f24dd748b2174095be3303bd68f2db43c95efe4
|
|
7
|
+
data.tar.gz: fb946815907c2308c9c55551aedc1b408db7621eba1b9acc4da6c141860d81dc89375de4789398a55a0036dbf6cca016dd4f594a6e07cface9a379c4b99eff30
|
|
@@ -52,7 +52,7 @@ module CountriesDB
|
|
|
52
52
|
code: codes.map(&:upcase),
|
|
53
53
|
follow_upward: false # Disabled for multi-select
|
|
54
54
|
})
|
|
55
|
-
response[
|
|
55
|
+
response[:results] || []
|
|
56
56
|
rescue StandardError => e
|
|
57
57
|
raise ValidationError, "Failed to validate countries: #{e.message}"
|
|
58
58
|
end
|
|
@@ -99,7 +99,7 @@ module CountriesDB
|
|
|
99
99
|
follow_related: false, # Disabled for multi-select
|
|
100
100
|
allow_parent_selection: allow_parent_selection
|
|
101
101
|
})
|
|
102
|
-
response[
|
|
102
|
+
response[:results] || []
|
|
103
103
|
rescue StandardError => e
|
|
104
104
|
raise ValidationError, "Failed to validate subdivisions: #{e.message}"
|
|
105
105
|
end
|
|
@@ -126,7 +126,9 @@ module CountriesDB
|
|
|
126
126
|
raise StandardError, error_data['message'] || "HTTP Error: #{response.code}"
|
|
127
127
|
end
|
|
128
128
|
|
|
129
|
-
JSON
|
|
129
|
+
# Convert JSON response to hash with symbol keys
|
|
130
|
+
json_response = JSON.parse(response.body)
|
|
131
|
+
symbolize_keys(json_response)
|
|
130
132
|
rescue Net::OpenTimeout, Net::ReadTimeout => e
|
|
131
133
|
raise TimeoutError, "Request timeout: #{e.message}"
|
|
132
134
|
rescue Net::HTTPError, SocketError, Errno::ECONNREFUSED, Errno::EHOSTUNREACH => e
|
|
@@ -138,6 +140,19 @@ module CountriesDB
|
|
|
138
140
|
def invalid_result(message)
|
|
139
141
|
{ valid: false, message: message }
|
|
140
142
|
end
|
|
143
|
+
|
|
144
|
+
def symbolize_keys(obj)
|
|
145
|
+
case obj
|
|
146
|
+
when Hash
|
|
147
|
+
obj.each_with_object({}) do |(key, value), result|
|
|
148
|
+
result[key.to_sym] = symbolize_keys(value)
|
|
149
|
+
end
|
|
150
|
+
when Array
|
|
151
|
+
obj.map { |item| symbolize_keys(item) }
|
|
152
|
+
else
|
|
153
|
+
obj
|
|
154
|
+
end
|
|
155
|
+
end
|
|
141
156
|
end
|
|
142
157
|
|
|
143
158
|
# Exception for validation errors
|
data/lib/countriesdb/version.rb
CHANGED