From 864d4e4e726dfcf5987fcc242659bbc4051bcc55 Mon Sep 17 00:00:00 2001 From: Olle Jonsson Date: Fri, 23 Dec 2016 12:01:46 +0100 Subject: [PATCH 1/3] Rename local variable include - this avoids collision with a keyword, which can be confusing --- lib/jsonapi/request_parser.rb | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/lib/jsonapi/request_parser.rb b/lib/jsonapi/request_parser.rb index 2e0faacfa..f64c7da9a 100644 --- a/lib/jsonapi/request_parser.rb +++ b/lib/jsonapi/request_parser.rb @@ -210,23 +210,22 @@ def check_include(resource_klass, include_parts) end end - def parse_include_directives(include) - return if include.nil? + def parse_include_directives(include_directives) + return if include_directives.nil? unless JSONAPI.configuration.allow_include fail JSONAPI::Exceptions::ParametersNotAllowed.new([:include]) end - included_resources = CSV.parse_line(include) + included_resources = CSV.parse_line(include_directives) return if included_resources.nil? - include = [] - included_resources.each do |included_resource| + result = included_resources.map do |included_resource| check_include(@resource_klass, included_resource.partition('.')) - include.push(unformat_key(included_resource).to_s) + unformat_key(included_resource).to_s end - @include_directives = JSONAPI::IncludeDirectives.new(@resource_klass, include) + @include_directives = JSONAPI::IncludeDirectives.new(@resource_klass, result) end def parse_filters(filters) From 3d203fd6b8b7575de220e54d28f7bf81b44e8c69 Mon Sep 17 00:00:00 2001 From: Olle Jonsson Date: Fri, 23 Dec 2016 15:00:44 +0100 Subject: [PATCH 2/3] Local rename renamed variable --- lib/jsonapi/request_parser.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/jsonapi/request_parser.rb b/lib/jsonapi/request_parser.rb index f64c7da9a..207d8b14a 100644 --- a/lib/jsonapi/request_parser.rb +++ b/lib/jsonapi/request_parser.rb @@ -210,14 +210,14 @@ def check_include(resource_klass, include_parts) end end - def parse_include_directives(include_directives) - return if include_directives.nil? + def parse_include_directives(raw_include) + return if raw_include.nil? unless JSONAPI.configuration.allow_include fail JSONAPI::Exceptions::ParametersNotAllowed.new([:include]) end - included_resources = CSV.parse_line(include_directives) + included_resources = CSV.parse_line(raw_include) return if included_resources.nil? result = included_resources.map do |included_resource| From 2fbb8e148ec746c8cdd28e0afa65c08b5727aef9 Mon Sep 17 00:00:00 2001 From: Olle Jonsson Date: Fri, 23 Dec 2016 15:08:10 +0100 Subject: [PATCH 3/3] parse_include_directives: Protect against falsy values --- lib/jsonapi/request_parser.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/jsonapi/request_parser.rb b/lib/jsonapi/request_parser.rb index 207d8b14a..fb80e5072 100644 --- a/lib/jsonapi/request_parser.rb +++ b/lib/jsonapi/request_parser.rb @@ -211,7 +211,7 @@ def check_include(resource_klass, include_parts) end def parse_include_directives(raw_include) - return if raw_include.nil? + return unless raw_include unless JSONAPI.configuration.allow_include fail JSONAPI::Exceptions::ParametersNotAllowed.new([:include])