at_fast_jsonapi 1.5.1 → 1.5.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 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