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
11
# File 'lib/json_api/serialization/concerns/attributes_deserialization.rb', line 6

def attributes
  attrs = extract_attributes_from_params
  attrs = attrs.transform_keys(&:to_sym) if attrs.respond_to?(:transform_keys)
  permitted_attrs = permitted_attributes_for_action
  attrs.slice(*permitted_attrs)
end

#extract_attributes_from_paramsObject



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

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

#permitted_attributes_for_actionObject



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

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