Sha256: 70e004030574babe8f1b652fe389fbe0c4177c157dab722f1867c9e1ed677e9d

Contents?: true

Size: 943 Bytes

Versions: 13

Compression:

Stored size: 943 Bytes

Contents

# frozen_string_literal: true

module Motor
  class ActiveStorageAttachmentsController < ApiBaseController
    include Motor::WrapIoParams

    wrap_parameters :data, except: %i[include fields]

    load_and_authorize_resource :attachment, class: 'ActiveStorage::Attachment', parent: false

    def create
      if attachable?(@attachment.record)
        @attachment.record.public_send(@attachment.name).attach(file_params)

        head :ok
      else
        head :unprocessable_entity
      end
    end

    private

    def attachable?(record)
      record.respond_to?("#{@attachment.name}_attachment=") ||
        record.respond_to?("#{@attachment.name}_attachments=")
    end

    def file_params
      params.require(:data).require(:file).permit(:io, :filename).to_h
    end

    def attachment_params
      if params[:data].present?
        params.require(:data).except(:file).permit!
      else
        {}
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
motor-admin-0.1.43 app/controllers/motor/active_storage_attachments_controller.rb
motor-admin-0.1.42 app/controllers/motor/active_storage_attachments_controller.rb
motor-admin-0.1.41 app/controllers/motor/active_storage_attachments_controller.rb
motor-admin-0.1.40 app/controllers/motor/active_storage_attachments_controller.rb
motor-admin-0.1.39 app/controllers/motor/active_storage_attachments_controller.rb
motor-admin-0.1.37 app/controllers/motor/active_storage_attachments_controller.rb
motor-admin-0.1.36 app/controllers/motor/active_storage_attachments_controller.rb
motor-admin-0.1.35 app/controllers/motor/active_storage_attachments_controller.rb
motor-admin-0.1.34 app/controllers/motor/active_storage_attachments_controller.rb
motor-admin-0.1.33 app/controllers/motor/active_storage_attachments_controller.rb
motor-admin-0.1.32 app/controllers/motor/active_storage_attachments_controller.rb
motor-admin-0.1.31 app/controllers/motor/active_storage_attachments_controller.rb
motor-admin-0.1.29 app/controllers/motor/active_storage_attachments_controller.rb