Sha256: c6abdebe0fd5b79e3f00f8f39a672711d32aa625948a74fda014f5d14d51f368

Contents?: true

Size: 994 Bytes

Versions: 8

Compression:

Stored size: 994 Bytes

Contents

require_dependency "storytime/application_controller"

module Storytime
  module Dashboard
    class AutosavesController < DashboardController
      before_action :set_post, only: [:create]

      skip_after_action :verify_authorized, only: [:create]

      respond_to :json

      def create
        if @post.autosave.nil? || (@post.autosave.content != params[post_type_name.to_sym][:draft_content])
          @post.create_autosave(autosave_params)
        end

        head :ok
      end

      private

        def set_post
          @post = Storytime::Post.friendly.find(params["#{post_type_name}_id".to_sym])
        end

        def post_type_name
          @post_type_name = request.path.split("/")[2].singularize
        end

        def autosave_params
          post = @post || current_post_type.new(user: current_user)
          permitted_attrs = policy(post).permitted_attributes
          params.require(post_type_name.to_sym).permit(*permitted_attrs)
        end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
storytime-2.1.6 app/controllers/storytime/dashboard/autosaves_controller.rb
storytime-2.1.5 app/controllers/storytime/dashboard/autosaves_controller.rb
storytime-2.1.4 app/controllers/storytime/dashboard/autosaves_controller.rb
storytime-2.1.3 app/controllers/storytime/dashboard/autosaves_controller.rb
storytime-2.1.2 app/controllers/storytime/dashboard/autosaves_controller.rb
storytime-2.1.1 app/controllers/storytime/dashboard/autosaves_controller.rb
storytime-2.1.0 app/controllers/storytime/dashboard/autosaves_controller.rb
storytime-2.0.0 app/controllers/storytime/dashboard/autosaves_controller.rb