Sha256: 81c8f2693d196f256124a70b78b747051f9e3f5e2691f154cc5001c8c4f2184f

Contents?: true

Size: 1.23 KB

Versions: 58

Compression:

Stored size: 1.23 KB

Contents

module Workarea
  module Admin
    class DirectUploadsController < Admin::ApplicationController
      def product_images
        DirectUpload.ensure_cors!(request.url) if Configuration::S3.configured?
      end

      def new
        direct_upload = DirectUpload.new(params[:type], params[:filename])

        if direct_upload.valid?
          render json: { upload_url: direct_upload.upload_url }, status: :ok
        else
          errors = direct_upload.errors.full_messages.to_sentence
          render json: { error: errors }, status: :unprocessable_entity
        end
      end

      def create
        ProcessDirectUpload.perform_async(params[:type], params[:filename])
        request.xhr? ? head(:ok) : redirect_back(fallback_location: root_path)
      end

      # This is only used when no S3 config present (like local development)
      #
      # When this is used, Fog will be in mock mode (Fog.mock!) so it simulates
      # the use of a direct-to-S3 upload.
      def upload
        upload = DirectUpload.new(params[:type], "#{params[:filename]}.#{params[:format]}")

        Workarea.s3.put_bucket(Configuration::S3.bucket) rescue nil
        Workarea.s3.put_object(Configuration::S3.bucket, upload.key, request.body)
      end
    end
  end
end

Version data entries

58 entries across 58 versions & 1 rubygems

Version Path
workarea-admin-3.5.27 app/controllers/workarea/admin/direct_uploads_controller.rb
workarea-admin-3.5.26 app/controllers/workarea/admin/direct_uploads_controller.rb
workarea-admin-3.4.45 app/controllers/workarea/admin/direct_uploads_controller.rb
workarea-admin-3.5.25 app/controllers/workarea/admin/direct_uploads_controller.rb
workarea-admin-3.5.23 app/controllers/workarea/admin/direct_uploads_controller.rb
workarea-admin-3.4.44 app/controllers/workarea/admin/direct_uploads_controller.rb
workarea-admin-3.5.22 app/controllers/workarea/admin/direct_uploads_controller.rb
workarea-admin-3.4.43 app/controllers/workarea/admin/direct_uploads_controller.rb
workarea-admin-3.5.21 app/controllers/workarea/admin/direct_uploads_controller.rb
workarea-admin-3.4.42 app/controllers/workarea/admin/direct_uploads_controller.rb
workarea-admin-3.5.20 app/controllers/workarea/admin/direct_uploads_controller.rb
workarea-admin-3.4.41 app/controllers/workarea/admin/direct_uploads_controller.rb
workarea-admin-3.5.19 app/controllers/workarea/admin/direct_uploads_controller.rb
workarea-admin-3.4.40 app/controllers/workarea/admin/direct_uploads_controller.rb
workarea-admin-3.5.18 app/controllers/workarea/admin/direct_uploads_controller.rb
workarea-admin-3.4.39 app/controllers/workarea/admin/direct_uploads_controller.rb
workarea-admin-3.5.17 app/controllers/workarea/admin/direct_uploads_controller.rb
workarea-admin-3.4.38 app/controllers/workarea/admin/direct_uploads_controller.rb
workarea-admin-3.5.16 app/controllers/workarea/admin/direct_uploads_controller.rb
workarea-admin-3.4.37 app/controllers/workarea/admin/direct_uploads_controller.rb