Sha256: c4a098dfc6b9ef7512262ddde2431893bb9acd0eda5544ae1ff87087e2863826

Contents?: true

Size: 1.95 KB

Versions: 21

Compression:

Stored size: 1.95 KB

Contents

module Caboose
  class SnsController < ApplicationController
    
    skip_before_filter :verify_authenticity_token

    # GET /admin/sns
    def admin_index      
      render :json => true
    end

    # POST /admin/sns
    def admin_add
      body = JSON.parse(request.raw_post, {symbolize_names: true})      
      if body[:Type] && body[:Type] == "SubscriptionConfirmation"
        Caboose.log("SNS Subscription SubscribeURL\n#{body[:SubscribeURL]}")
      elsif body[:Subject] == 'Amazon S3 Notification'
        msg = JSON.parse(body[:Message])
        if msg['Records']
          msg['Records'].each do |r|
            if r['eventName'] && r['eventName'].starts_with?('ObjectCreated')          
              if r['s3'] && r['s3']['object'] && r['s3']['object']['key']
                                
                key = URI.decode(r['s3']['object']['key']).gsub('+', ' ')
                Caboose.log("Processing #{key}")

                arr = key.split('_')
                media_category_id = arr.shift
                original_name = arr.join('_')  
                name = Caboose::Media.upload_name(original_name)
                                                                      
                m = Media.where(:media_category_id => media_category_id, :original_name => original_name, :name => name).first
                m = Media.create(:media_category_id => media_category_id, :original_name => original_name, :name => name, :processed => false) if m.nil?                
                m.process                
      
              end
            end                  
          end
        end
      end
      render :json => true
    end
    
    # GET  /admin/sns/confirm
    # POST /admin/sns/confirm
    def admin_confirm      
      render :json => true
    end

    # PUT /admin/sns/:id
    def admin_update
      render :json => true
    end

    # DELETE /admin/sns/:id
    def admin_delete                        
      render :json => true
    end

  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
caboose-cms-0.6.24 app/controllers/caboose/sns_controller.rb
caboose-cms-0.6.23 app/controllers/caboose/sns_controller.rb
caboose-cms-0.6.22 app/controllers/caboose/sns_controller.rb
caboose-cms-0.6.21 app/controllers/caboose/sns_controller.rb
caboose-cms-0.6.20 app/controllers/caboose/sns_controller.rb
caboose-cms-0.6.19 app/controllers/caboose/sns_controller.rb
caboose-cms-0.6.18 app/controllers/caboose/sns_controller.rb
caboose-cms-0.6.17 app/controllers/caboose/sns_controller.rb
caboose-cms-0.6.16 app/controllers/caboose/sns_controller.rb
caboose-cms-0.6.15 app/controllers/caboose/sns_controller.rb
caboose-cms-0.6.14 app/controllers/caboose/sns_controller.rb
caboose-cms-0.6.13 app/controllers/caboose/sns_controller.rb
caboose-cms-0.6.12 app/controllers/caboose/sns_controller.rb
caboose-cms-0.6.11 app/controllers/caboose/sns_controller.rb
caboose-cms-0.6.10 app/controllers/caboose/sns_controller.rb
caboose-cms-0.6.9 app/controllers/caboose/sns_controller.rb
caboose-cms-0.6.8 app/controllers/caboose/sns_controller.rb
caboose-cms-0.6.7 app/controllers/caboose/sns_controller.rb
caboose-cms-0.6.6 app/controllers/caboose/sns_controller.rb
caboose-cms-0.6.5 app/controllers/caboose/sns_controller.rb