Sha256: 7e79903bf2d7d14cbd366ff0678725e7655f570ebdd25678db367a088d4f5a33

Contents?: true

Size: 822 Bytes

Versions: 1

Compression:

Stored size: 822 Bytes

Contents

require 'omnihooks'
require 'active_support/core_ext/hash/conversions'
require "active_support/core_ext/hash/indifferent_access"
require 'active_support/core_ext/object/blank'

module OmniHooks
  module Strategies
    class CoreWarehouse
      include OmniHooks::Strategy
      option :name, 'core-warehouse'

      event do
        owner = request.params['owner']
        raise ArgumentError.new "Query parameter 'owner' must be included" if owner.blank?
        ActiveSupport::HashWithIndifferentAccess.new({ 
          owner: owner,
          event: raw_info
        })
      end

      event_type do
        raw_info_as_hash.keys.first
      end

      private

      def raw_info
        @raw_info ||= request.body.read
      end

      def raw_info_as_hash
        Hash.from_xml(raw_info)
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
omnihooks-core-warehouse-0.2.0 lib/omnihooks/strategies/core_warehouse.rb