Sha256: bea705840c54df0c68e79d88ae8cd9e67b6bf25b22fd7ed068bee8cfa6530a02

Contents?: true

Size: 1.07 KB

Versions: 7

Compression:

Stored size: 1.07 KB

Contents

# encoding: utf-8
module Uploader
  class AttachmentsController < ActionController::Metal
    include AbstractController::Callbacks
  
    before_filter :find_klass
    
    def create
      @asset = @klass.new(params[:asset])
      @asset.uploader_create(params, request)
      render_resourse(@asset, 201)
    end
    
    def destroy
      @asset = @klass.find(params[:id])
      @asset.uploader_destroy(params, request)
      render_resourse(@asset, 200)
    end
    
    protected
    
      def find_klass
        @klass = params[:klass].blank? ? nil : params[:klass].safe_constantize
        raise ActiveRecord::RecordNotFound.new("Class not found #{params[:klass]}") if @klass.nil?
      end
      
      def render_resourse(record, status = 200)
        if record.errors.empty?
          render_json(record.to_json, status)
        else
          render_json(record.errors.to_json, 422)
        end
      end
      
      def render_json(body, status = 200)
        self.status = status
        self.content_type = "application/json"
        self.response_body = body
      end
  end
end

Version data entries

7 entries across 7 versions & 2 rubygems

Version Path
sunrise-cms-0.3.3 vendor/bundle/ruby/1.9.1/gems/rails-uploader-0.0.1/app/controllers/uploader/attachments_controller.rb
sunrise-cms-0.3.2 vendor/bundle/ruby/1.9.1/gems/rails-uploader-0.0.1/app/controllers/uploader/attachments_controller.rb
sunrise-cms-0.3.1 vendor/bundle/ruby/1.9.1/gems/rails-uploader-0.0.1/app/controllers/uploader/attachments_controller.rb
sunrise-cms-0.3.0 vendor/bundle/ruby/1.9.1/gems/rails-uploader-0.0.1/app/controllers/uploader/attachments_controller.rb
rails-uploader-0.0.3 app/controllers/uploader/attachments_controller.rb
sunrise-cms-0.3.0.rc vendor/bundle/ruby/1.9.1/gems/rails-uploader-0.0.1/app/controllers/uploader/attachments_controller.rb
rails-uploader-0.0.1 app/controllers/uploader/attachments_controller.rb