Sha256: aa17b581b05bdad5eb9522f3750d2da04057ef825ca82280df1f7d45d31e3e6c

Contents?: true

Size: 1.98 KB

Versions: 16

Compression:

Stored size: 1.98 KB

Contents

module Caboose
  class SnsController < ApplicationController
    
    skip_before_filter :verify_authenticity_token

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

    # @route 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
    
    # @route GET  /admin/sns/confirm
    # @route POST /admin/sns/confirm
    def admin_confirm      
      render :json => true
    end

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

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

  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
caboose-cms-0.8.16 app/controllers/caboose/sns_controller.rb
caboose-cms-0.8.15 app/controllers/caboose/sns_controller.rb
caboose-cms-0.8.14 app/controllers/caboose/sns_controller.rb
caboose-cms-0.8.13 app/controllers/caboose/sns_controller.rb
caboose-cms-0.8.12 app/controllers/caboose/sns_controller.rb
caboose-cms-0.8.11 app/controllers/caboose/sns_controller.rb
caboose-cms-0.8.10 app/controllers/caboose/sns_controller.rb
caboose-cms-0.8.9 app/controllers/caboose/sns_controller.rb
caboose-cms-0.8.8 app/controllers/caboose/sns_controller.rb
caboose-cms-0.8.7 app/controllers/caboose/sns_controller.rb
caboose-cms-0.8.6 app/controllers/caboose/sns_controller.rb
caboose-cms-0.8.5 app/controllers/caboose/sns_controller.rb
caboose-cms-0.8.4 app/controllers/caboose/sns_controller.rb
caboose-cms-0.8.3 app/controllers/caboose/sns_controller.rb
caboose-cms-0.8.2 app/controllers/caboose/sns_controller.rb
caboose-cms-0.8.1 app/controllers/caboose/sns_controller.rb