at_fast_jsonapi 1.5.1 → 1.5.2

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: 291694e585eb1b604cf33d0901571df3324b63daa24cb68fdd5c08b767bc2c18
4
- data.tar.gz: 48101839762d8b07eb20767e7299b558f333aa39b8059fd608fe3da8c8298674
3
+ metadata.gz: 871c6187bdef1b3a497dff7dc1835c8328a55abe4efe40d8281ea8c196ba28f4
4
+ data.tar.gz: fa74502f378d2b9c4122dce8feab8376be8768a921c21caba17909e336627bec
5
5
  SHA512:
6
- metadata.gz: a513199fd7829c20915c6b35ef5bba155ec75b9c9f44460dca519d8b71dda867f278de3ef961fcaf77986bf8c62436f65f757166f8bc5f714f3c6705413c53a9
7
- data.tar.gz: d5e5ca265e0539ba7e82145245cc7d80bbdd20b086b5308455c713832361d56dd82fbd14e47b5a6662f8c7eb7d68164c884c4fda4d94a03fbe9dbfe910a1f469
6
+ metadata.gz: b74ccfe7d02b078b7cb9b6032c09c36f94b727613f86d9506e2f43d9512694e275a5bcb07d933c62580e90b7d727a7d1bda6603c8ca6246e1c59d6a947405b0c
7
+ data.tar.gz: 99f46c8c26da04e6d7b9971036bc9d23bf26d4f44b6fdc793c6bbdd3cea7f599708d792fb7f2f3ab9d3af94f4b1418de4e1e828700529a89571b323ef0e548a4
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Fast JSON API
1
+ # Fast JSON API (Agile Tools Fork)
2
2
 
3
3
  [![Build Status](https://travis-ci.org/Netflix/fast_jsonapi.svg?branch=master)](https://travis-ci.org/Netflix/fast_jsonapi)
4
4
 
@@ -2,6 +2,7 @@
2
2
 
3
3
  module FastJsonapi
4
4
  require 'fast_jsonapi/object_serializer'
5
+ require 'fast_jsonapi/error_serializer'
5
6
  if defined?(::Rails)
6
7
  require 'fast_jsonapi/railtie'
7
8
  elsif defined?(::ActiveRecord)
@@ -0,0 +1,41 @@
1
+
2
+ module FastJsonapi
3
+ class ErrorSerializer
4
+
5
+ def initialize(model)
6
+ @model = model
7
+ @model.valid?
8
+ end
9
+
10
+ def serializable_hash
11
+ { errors: errors_for(@model) }
12
+ end
13
+
14
+ def serialized_json(options = nil)
15
+ serializable_hash.to_json(options)
16
+ end
17
+
18
+ private
19
+
20
+ def errors_for(resource)
21
+ resource.errors.messages.flat_map do |field, errors|
22
+ build_hashes_for(field, errors)
23
+ end
24
+ end
25
+
26
+ def build_hashes_for(field, errors)
27
+ errors.map do |error_message|
28
+ build_hash_for(field, error_message)
29
+ end.flatten
30
+ end
31
+
32
+ def build_hash_for(field, error_message)
33
+ {}.tap do |hash|
34
+ hash[:status] = "422"
35
+ hash[:source] = { pointer: "/data/attributes/#{field}" }
36
+ hash[:detail] = error_message
37
+ end
38
+ end
39
+
40
+ end
41
+ end
@@ -1,3 +1,3 @@
1
1
  module FastJsonapi
2
- VERSION = "1.5.1"
2
+ VERSION = "1.5.2"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: at_fast_jsonapi
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.1
4
+ version: 1.5.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bradley Temple
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2020-05-28 00:00:00.000000000 Z
14
+ date: 2020-05-29 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: activesupport
@@ -41,6 +41,20 @@ dependencies:
41
41
  - - ">="
42
42
  - !ruby/object:Gem::Version
43
43
  version: '4.2'
44
+ - !ruby/object:Gem::Dependency
45
+ name: activemodel
46
+ requirement: !ruby/object:Gem::Requirement
47
+ requirements:
48
+ - - ">="
49
+ - !ruby/object:Gem::Version
50
+ version: '4.2'
51
+ type: :development
52
+ prerelease: false
53
+ version_requirements: !ruby/object:Gem::Requirement
54
+ requirements:
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ version: '4.2'
44
58
  - !ruby/object:Gem::Dependency
45
59
  name: skylight
46
60
  requirement: !ruby/object:Gem::Requirement
@@ -103,14 +117,14 @@ dependencies:
103
117
  requirements:
104
118
  - - "~>"
105
119
  - !ruby/object:Gem::Version
106
- version: '1.0'
120
+ version: '2.0'
107
121
  type: :development
108
122
  prerelease: false
109
123
  version_requirements: !ruby/object:Gem::Requirement
110
124
  requirements:
111
125
  - - "~>"
112
126
  - !ruby/object:Gem::Version
113
- version: '1.0'
127
+ version: '2.0'
114
128
  - !ruby/object:Gem::Dependency
115
129
  name: byebug
116
130
  requirement: !ruby/object:Gem::Requirement
@@ -195,6 +209,7 @@ files:
195
209
  - lib/extensions/has_one.rb
196
210
  - lib/fast_jsonapi.rb
197
211
  - lib/fast_jsonapi/attribute.rb
212
+ - lib/fast_jsonapi/error_serializer.rb
198
213
  - lib/fast_jsonapi/instrumentation.rb
199
214
  - lib/fast_jsonapi/instrumentation/serializable_hash.rb
200
215
  - lib/fast_jsonapi/instrumentation/serialized_json.rb