agilibox 1.2.3 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cd2407ff1f5524e74f7fc5bf7e52c83d4be361331191066ca426e2ae3a6bc56e
4
- data.tar.gz: 84485258fee15107d33af7ec443b7055b8d7498fe94a7924ac72ae7a78284b09
3
+ metadata.gz: d1d6a3a6ef0cdd710900a9321e8667760383f7055bf0722a8ca9e86606d542ff
4
+ data.tar.gz: d65f84364748698b60b09238cf62d28b890a9785624f1aa3916a4606a6540188
5
5
  SHA512:
6
- metadata.gz: 5011a1818ddd1524ebb4f37dc3a5743988649f84e08815a33c45b2c74376fec9c07f593dd7709e847927efbbbe116aa67980a760ab33c554a526b8bd153e521a
7
- data.tar.gz: 5d37cd97225e112e9e91df02a9280cdb78105ed1031f27c85b9b4004f9bc3a5d73a26e6c45e7d71d85e06ff203902166eec5f79321440c9cda28fef337ea55d2
6
+ metadata.gz: 256f31aec139fe4817ad3247c4c7e37ea580f9fbba0594afaca3b1360230419cdb8349e4b8ff2987111159bcdd27f6932d899301047fef5ac2a609444b331add
7
+ data.tar.gz: cb19a457bfce997f22bfc48b2049a799bad0513bedf685f4cbdf96943b4a73734df061e5fcf8e96386b5237396b996cdca2a771faa9c57efd2881eab7150e4bb
data/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## Next version
4
+
5
+ ## 1.3.0
6
+
7
+ - ApiControllerConcern : add `model_errors` in json response
8
+ - `json_response` is now a `HashWithIndifferentAccess`
9
+
3
10
  ## 1.2.3
4
11
 
5
12
  - Add FCM
@@ -13,8 +13,15 @@ module Agilibox::ApiControllerConcern
13
13
  end
14
14
 
15
15
  def render_json_error(any_object, options = {})
16
- if any_object.is_a?(ActiveRecord::Base)
17
- json = {error: any_object.errors.full_messages.join(", ")}
16
+ if any_object.is_a?(ActiveModel::Validations)
17
+ model_errors = any_object.errors
18
+ .map { |a, m| [a, message: m, full_message: any_object.errors.full_message(a, m)] }
19
+ .uniq(&:first)
20
+ .to_h
21
+
22
+ error = model_errors.values.map { |e| e[:full_message] }.join(", ")
23
+
24
+ json = {error: error, model_errors: model_errors}
18
25
  elsif any_object.is_a?(String)
19
26
  json = {error: any_object}
20
27
  else
@@ -61,7 +61,7 @@ class Agilibox::SmallData::Filter
61
61
  end
62
62
 
63
63
  def any?
64
- read.select { |k, v| strategies.keys.include?(k.to_s) && v.present? }.any?
64
+ read.select { |k, v| strategies.key?(k.to_s) && v.present? }.any?
65
65
  end
66
66
 
67
67
  def empty?
@@ -1,6 +1,6 @@
1
1
  module Agilibox::TestHelpers
2
2
  def json_response
3
- @json_response ||= JSON.parse(response.body)
3
+ @json_response ||= JSON.parse(response.body).with_indifferent_access
4
4
  end
5
5
 
6
6
  def email_deliveries
@@ -1,3 +1,3 @@
1
1
  module Agilibox
2
- VERSION = "1.2.3"
2
+ VERSION = "1.3.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: agilibox
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.3
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - agilidée
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-06-01 00:00:00.000000000 Z
11
+ date: 2018-06-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails-i18n