module JSONAPI::Fetching
Inclusion and sparse fields support
Private Instance Methods
jsonapi_fields()
click to toggle source
Extracts and formats sparse fieldsets
Ex.: `GET /resource?fields=id,created_at`
@return [Hash]
# File lib/jsonapi/fetching.rb, line 10 def jsonapi_fields return {} unless params[:fields].respond_to?(:each_pair) if defined?(ActiveSupport::HashWithIndifferentAccess) extracted = ActiveSupport::HashWithIndifferentAccess.new else extracted = Hash.new end params[:fields].each do |k, v| extracted[k] = v.to_s.split(',').map(&:strip).compact end extracted end
jsonapi_include()
click to toggle source
Extracts and whitelists allowed includes
Ex.: `GET /resource?include=relationship,relationship.subrelationship`
@return [Array]
# File lib/jsonapi/fetching.rb, line 31 def jsonapi_include params['include'].to_s.split(',').map(&:strip).compact end