Sha256: f77aa4b8ba1787aa12d87b1d95615c892c55acd93e21c6ff7c1bb0cb833ddd88

Contents?: true

Size: 1.17 KB

Versions: 8

Compression:

Stored size: 1.17 KB

Contents

class PrometheeController < ApplicationController
  # This is acceptable because the iframe is sandboxed
  skip_before_action :verify_authenticity_token, only: :preview

  def preview
    @data = params[:data]
    render 'preview', layout: params[:preview_layout] if params.include? :preview_layout
  end

  def blob_create
    io = params[:file].to_io
    filename = params[:file].original_filename
    content_type = params[:file].content_type
    blob = ActiveStorage::Blob.create_after_upload! io: io, filename: filename, content_type: content_type
    render json: { id: blob.signed_id, name: filename }
  end

  def blob_show
    # as this is called only from promethee preview it sends an image resized to 720
    begin
      blob_find_method = ActiveStorage::Blob.respond_to?(:find_signed!) ? :find_signed! : :find_signed
      blob = ActiveStorage::Blob.public_send(blob_find_method, params[:id])
    rescue
      raise ActiveRecord::RecordNotFound
    end

    if blob.image? && blob.variable?
      redirect_to url_for(blob.variant(resize: '720>'))
    elsif blob.video?
      redirect_to url_for(blob.preview(resize: '720>'))
    else
      redirect_to url_for(blob)
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
promethee-5.1.0 app/controllers/promethee_controller.rb
promethee-5.0.2 app/controllers/promethee_controller.rb
promethee-5.0.1 app/controllers/promethee_controller.rb
promethee-5.0.0 app/controllers/promethee_controller.rb
promethee-4.1.28 app/controllers/promethee_controller.rb
promethee-4.1.27 app/controllers/promethee_controller.rb
promethee-4.1.26 app/controllers/promethee_controller.rb
promethee-4.1.25 app/controllers/promethee_controller.rb