Sha256: 22ef6c18797616e66d053757e558a0b154ad018dc1dd7f428436ff54fe44f8d2
Contents?: true
Size: 1.49 KB
Versions: 17
Compression:
Stored size: 1.49 KB
Contents
# frozen_string_literal: true module EIVO module Concerns module Resource extend ::ActiveSupport::Concern included do before_action :set_default_serializer_options end def show @object ||= collection render_success serializer.new(@object, @serializer_options) end def create @object ||= collection.new @object.assign_attributes(object_params_create) if @object.save render_success serializer.new(@object, @serializer_options) else render_model_errors @object.errors end end def update @object ||= collection @object.assign_attributes(object_params_update) if @object.save render_success serializer.new(@object, @serializer_options) else render_model_errors @object.errors end end def destroy @object ||= collection if @object.destroy render_success else render_model_errors @object.errors end end protected def collection raise NotImplementedError end def serializer raise NotImplementedError end def object_params raise NotImplementedError end def object_params_create object_params end def object_params_update object_params end def set_default_serializer_options @serializer_options ||= {} end end end end
Version data entries
17 entries across 17 versions & 1 rubygems