class SharkOnLambda::JsonapiParameters
Public Class Methods
new(params = {})
click to toggle source
# File lib/shark_on_lambda/jsonapi_parameters.rb, line 5 def initialize(params = {}) @class = default_serializer_classes @fields = HashWithIndifferentAccess.new @include = [] parse_params(params) if params.present? end
Public Instance Methods
classes(serializer_classes = {})
click to toggle source
# File lib/shark_on_lambda/jsonapi_parameters.rb, line 13 def classes(serializer_classes = {}) @class = default_serializer_classes.merge(serializer_classes) end
fields(serialized_fields = {})
click to toggle source
# File lib/shark_on_lambda/jsonapi_parameters.rb, line 17 def fields(serialized_fields = {}) @fields = serialized_fields.with_indifferent_access end
includes(*includes_list)
click to toggle source
# File lib/shark_on_lambda/jsonapi_parameters.rb, line 21 def includes(*includes_list) @include = includes_list end
to_h()
click to toggle source
# File lib/shark_on_lambda/jsonapi_parameters.rb, line 25 def to_h { class: @class, fields: @fields, include: @include } end
Also aliased as: to_hash
Protected Instance Methods
default_serializer_classes()
click to toggle source
# File lib/shark_on_lambda/jsonapi_parameters.rb, line 36 def default_serializer_classes HashWithIndifferentAccess.new do |hash, key| serializer_service = Inferrers::SerializerInferrer.new(key) serializer_class = serializer_service.serializer_class hash[key] = serializer_class end end
parse_fields_params(fields_params)
click to toggle source
# File lib/shark_on_lambda/jsonapi_parameters.rb, line 44 def parse_fields_params(fields_params) return if fields_params.blank? serialized_fields = fields_params.transform_values do |fields_param| fields = fields_param.split(',') fields.map!(&:strip) fields.map!(&:to_sym) end fields(serialized_fields) end
parse_include_params(include_params)
click to toggle source
# File lib/shark_on_lambda/jsonapi_parameters.rb, line 55 def parse_include_params(include_params) include_params = JSONAPI::IncludeDirective.new(include_params) include_params = include_params.to_hash includes(include_params.with_indifferent_access) end
parse_params(params)
click to toggle source
# File lib/shark_on_lambda/jsonapi_parameters.rb, line 61 def parse_params(params) parse_fields_params(params[:fields]) parse_include_params(params[:include]) end