diff --git a/lib/jsonapi/error_serializer.rb b/lib/jsonapi/error_serializer.rb index cb384fa..3b6e10f 100644 --- a/lib/jsonapi/error_serializer.rb +++ b/lib/jsonapi/error_serializer.rb @@ -8,7 +8,7 @@ class ErrorSerializer set_type :error # Object/Hash attribute helpers. - [:status, :source, :title, :detail, :code].each do |attr_name| + [:status, :source, :title, :detail, :code, :meta].each do |attr_name| attribute attr_name do |object| object.try(attr_name) || object.try(:fetch, attr_name, nil) end diff --git a/spec/errors_spec.rb b/spec/errors_spec.rb index a704a63..e35d4f4 100644 --- a/spec/errors_spec.rb +++ b/spec/errors_spec.rb @@ -38,7 +38,8 @@ 'source' => { 'pointer' => '' }, 'title' => 'Unprocessable Entity', 'detail' => nil, - 'code' => nil + 'code' => nil, + 'meta' => nil } ) end @@ -65,7 +66,8 @@ 'source' => { 'pointer' => '/data/relationships/user' }, 'title' => 'Unprocessable Entity', 'detail' => expected_detail, - 'code' => 'blank' + 'code' => 'blank', + 'meta' => nil } ) end @@ -87,21 +89,24 @@ 'source' => { 'pointer' => '/data/attributes/title' }, 'title' => 'Unprocessable Entity', 'detail' => 'Title is invalid', - 'code' => 'invalid' + 'code' => 'invalid', + 'meta' => nil }, { 'status' => '422', 'source' => { 'pointer' => '/data/attributes/title' }, 'title' => 'Unprocessable Entity', 'detail' => 'Title has typos', - 'code' => 'invalid' + 'code' => 'invalid', + 'meta' => nil }, { 'status' => '422', 'source' => { 'pointer' => '/data/attributes/quantity' }, 'title' => 'Unprocessable Entity', 'detail' => 'Quantity must be less than 100', - 'code' => 'less_than' + 'code' => 'less_than', + 'meta' => nil } ) end @@ -123,7 +128,8 @@ 'source' => { 'pointer' => '' }, 'title' => 'Unprocessable Entity', 'detail' => 'Title has slurs', - 'code' => 'title_has_slurs' + 'code' => 'title_has_slurs', + 'meta' => nil } ) end @@ -146,7 +152,8 @@ 'source' => { 'pointer' => '/data/attributes/title' }, 'title' => 'Unprocessable Entity', 'detail' => nil, - 'code' => nil + 'code' => nil, + 'meta' => nil } ) end @@ -166,7 +173,8 @@ 'source' => nil, 'title' => 'Not Found', 'detail' => nil, - 'code' => nil + 'code' => nil, + 'meta' => nil } ) end @@ -185,7 +193,8 @@ 'source' => nil, 'title' => 'Internal Server Error', 'detail' => nil, - 'code' => nil + 'code' => nil, + 'meta' => nil } ) end