Sha256: 688b100f18d48aca2ae75816a472564b0b3c068b3176cd238f4736c4072c9a84

Contents?: true

Size: 1.75 KB

Versions: 2

Compression:

Stored size: 1.75 KB

Contents

module Her
  module JsonApi
    module Model
      
      def self.included(klass)
        klass.class_eval do
          include Her::Model

          # [:parse_root_in_json, :include_root_in_json, :root_element, :primary_key].each do |method|
          #   define_method method do |*args|
          #     raise NoMethodError, "Her::JsonApi::Model does not support the #{method} configuration option"
          #   end
          # end

          method_for :update, :patch

          @type = name.demodulize.tableize
          
          def self.parse(data)
            begin
              if data.has_key?(:attributes)
                data.fetch(:attributes).merge(data.slice(:id))
              else
                data
              end
            rescue
              nil
            end
          end


          # For now our APIs are able to deliver jsonapi but not to digest it. We reply with standard rails parameters.
          #
          # def self.to_params(attributes, changes={})
          #   request_data = { type: @type }.tap { |request_body|
          #     attrs = attributes.dup.symbolize_keys.tap { |filtered_attributes|
          #       if her_api.options[:send_only_modified_attributes]
          #         filtered_attributes = changes.symbolize_keys.keys.inject({}) do |hash, attribute|
          #           hash[attribute] = filtered_attributes[attribute]
          #           hash
          #         end
          #       end
          #     }
          #     request_body[:id] = attrs.delete(:id) if attrs[:id]
          #     request_body[:attributes] = attrs
          #   }
          #   { data: request_data }
          # end

          def self.type(type_name)
            @type = type_name.to_s
          end
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
her5-0.8.2 lib/her/json_api/model.rb
her5-0.8.1 lib/her/json_api/model.rb