Module: JSONAPI::Serialization::AttributesDeserialization

Included in:
Deserializer
Defined in:
lib/json_api/serialization/concerns/attributes_deserialization.rb

Instance Method Summary collapse

Instance Method Details

#attributesObject



6
7
8
9
10
# File 'lib/json_api/serialization/concerns/attributes_deserialization.rb', line 6

def attributes
  attrs = ParamHelpers.ensure_object!(extract_attributes_from_params, "data.attributes")
  permitted_attrs = permitted_attributes_for_action
  attrs.transform_keys(&:to_sym).slice(*permitted_attrs)
end

#extract_attributes_from_paramsObject



12
13
14
# File 'lib/json_api/serialization/concerns/attributes_deserialization.rb', line 12

def extract_attributes_from_params
  @params.dig(:data, :attributes) || @params[:attributes] || {}
end

#permitted_attributes_for_actionObject



16
17
18
19
20
21
22
23
# File 'lib/json_api/serialization/concerns/attributes_deserialization.rb', line 16

def permitted_attributes_for_action
  fields = if @action == :create
             @definition.permitted_creatable_fields
           else
             @definition.permitted_updatable_fields
           end
  fields.map(&:to_sym)
end