Skip to content

Commit f98f3b1

Browse files
AndriiNyzhnykAndriiNyzhnyk
authored andcommitted
Don't raise an error when included field can't be retrieved.
1 parent b3beb56 commit f98f3b1

File tree

2 files changed

+15
-2
lines changed

2 files changed

+15
-2
lines changed

lib/jsonapi-serializers/serializer.rb

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -294,7 +294,8 @@ def self.serialize(objects, options = {})
294294
namespace: options[:namespace],
295295
include: includes,
296296
fields: fields,
297-
base_url: options[:base_url]
297+
base_url: options[:base_url],
298+
skip_included_check: options[:skip_included_check]
298299
}
299300

300301
if !options[:skip_collection_check] && options[:is_collection] && !objects.respond_to?(:each)
@@ -470,7 +471,7 @@ def self.find_recursive_relationships(root_object, root_inclusion_tree, results,
470471
object = serializer.has_many_relationship(unformatted_attr_name, attr_data)
471472
end
472473

473-
if !is_valid_attr
474+
if !options[:skip_included_check] && !is_valid_attr
474475
raise JSONAPI::Serializer::InvalidIncludeError.new(
475476
"'#{attribute_name}' is not a valid include.")
476477
end

spec/serializer_spec.rb

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1178,6 +1178,18 @@ def read_attribute_for_validation(attr)
11781178
expect do
11791179
JSONAPI::Serializer.serialize(create(:underscore_test), include: 'tagged_posts');
11801180
end.not_to raise_error
1181+
1182+
expect do
1183+
JSONAPI::Serializer.serialize([create(:post)], include: 'fake', is_collection: true);
1184+
end.to raise_error(JSONAPI::Serializer::InvalidIncludeError)
1185+
end
1186+
1187+
context 'when skip_included_check is true' do
1188+
it "doesn't raise an exception when join character is invalid" do
1189+
expect do
1190+
JSONAPI::Serializer.serialize([create(:post)], include: 'fake', is_collection: true, skip_included_check: true);
1191+
end.not_to raise_error(JSONAPI::Serializer::InvalidIncludeError)
1192+
end
11811193
end
11821194
end
11831195

0 commit comments

Comments
 (0)