Sha256: 1d177c51f495055dc44ee273a5adb85bf6fdd8e540c7fe6472c6667e63875fdc

Contents?: true

Size: 1.92 KB

Versions: 69

Compression:

Stored size: 1.92 KB

Contents

module Caboose
  class MyAccountLineItemsController < Caboose::ApplicationController
            
    # GET /my-account/orders/:order_id/line-items
    def index
      return if !verify_logged_in      
      @order = Order.find(params[:order_id])
      if @order.customer_id != logged_in_user.id
        @error = "The given order does not belong to you."
        render :file => 'caboose/extras/error'
        return
      end
    end
      
    # GET /my-account/orders/:order_id/line-items/:id
    def edit
      return if !verify_logged_in
      
      @order = Order.find(params[:order_id])
      @line_item = LineItem.find(params[:id])
      if @order.customer_id != logged_in_user.id
        @error = "The given order does not belong to you."
        render :file => 'caboose/extras/error'
        return
      end      
    end
    
    # GET /my-account/orders/:order_id/line-items/:id/download
    def download
      return if !verify_logged_in
      
      order = Order.find(params[:order_id])      
      if order.customer_id != logged_in_user.id
        @error = "The given order does not belong to you."
        render :file => 'caboose/extras/error'
        return
      end
      
      li = LineItem.find(params[:id])
      if !li.variant.downloadable
        render :text => "Not a downloadable file."
        return
      end
      
      # Generate the download URL and redirect to it
      sc = @site.store_config              
      config = YAML.load_file("#{::Rails.root}/config/aws.yml")
      AWS.config({ 
        :access_key_id => config[Rails.env]['access_key_id'],
        :secret_access_key => config[Rails.env]['secret_access_key']  
      })          
      bucket = AWS::S3::Bucket.new(config[Rails.env]['bucket'])
      s3object = AWS::S3::S3Object.new(bucket, li.variant.download_path)
      url = s3object.url_for(:read, :expires => sc.download_url_expires_in.to_i.minutes).to_s

      redirect_to url
    end
             
  end
end

Version data entries

69 entries across 69 versions & 1 rubygems

Version Path
caboose-cms-0.7.85 app/controllers/caboose/my_account_line_items_controller.rb
caboose-cms-0.7.84 app/controllers/caboose/my_account_line_items_controller.rb
caboose-cms-0.7.83 app/controllers/caboose/my_account_line_items_controller.rb
caboose-cms-0.7.82 app/controllers/caboose/my_account_line_items_controller.rb
caboose-cms-0.7.81 app/controllers/caboose/my_account_line_items_controller.rb
caboose-cms-0.7.80 app/controllers/caboose/my_account_line_items_controller.rb
caboose-cms-0.7.79 app/controllers/caboose/my_account_line_items_controller.rb
caboose-cms-0.7.78 app/controllers/caboose/my_account_line_items_controller.rb
caboose-cms-0.7.77 app/controllers/caboose/my_account_line_items_controller.rb
caboose-cms-0.7.76 app/controllers/caboose/my_account_line_items_controller.rb
caboose-cms-0.7.75 app/controllers/caboose/my_account_line_items_controller.rb
caboose-cms-0.7.74 app/controllers/caboose/my_account_line_items_controller.rb
caboose-cms-0.7.73 app/controllers/caboose/my_account_line_items_controller.rb
caboose-cms-0.7.72 app/controllers/caboose/my_account_line_items_controller.rb
caboose-cms-0.7.71 app/controllers/caboose/my_account_line_items_controller.rb
caboose-cms-0.7.70 app/controllers/caboose/my_account_line_items_controller.rb
caboose-cms-0.7.69 app/controllers/caboose/my_account_line_items_controller.rb
caboose-cms-0.7.68 app/controllers/caboose/my_account_line_items_controller.rb
caboose-cms-0.7.67 app/controllers/caboose/my_account_line_items_controller.rb
caboose-cms-0.7.66 app/controllers/caboose/my_account_line_items_controller.rb