Sha256: 9a608433c44faf5c55583e86908beb4efbe17a3a9e57240293c712927c607594

Contents?: true

Size: 943 Bytes

Versions: 10

Compression:

Stored size: 943 Bytes

Contents

module ShopifyAPI
  class Connection < ActiveResource::Connection
    attr_reader :response

    module ResponseCapture
      def handle_response(response)
        @response = super
      end
    end

    include ResponseCapture

    module RequestNotification
      def request(method, path, *arguments)
        super.tap do |response|
          notify_about_request(method, path, response, arguments)
        end
      rescue => e
        notify_about_request(method, path, e.response, arguments) if e.respond_to?(:response)
        raise
      end

      def notify_about_request(method, path, response, arguments)
        ActiveSupport::Notifications.instrument("request.active_resource_detailed") do |payload|
          payload[:method]   = method
          payload[:path]     = path
          payload[:response] = response
          payload[:data]     = arguments
        end
      end
    end

    include RequestNotification
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
shopify_api-8.0.0 lib/shopify_api/connection.rb
shopify_api-7.1.0 lib/shopify_api/connection.rb
shopify_api-7.0.2 lib/shopify_api/connection.rb
shopify_api-7.0.1 lib/shopify_api/connection.rb
shopify_api-7.0.0 lib/shopify_api/connection.rb
shopify_api-6.0.0 lib/shopify_api/connection.rb
shopify_api-5.2.4 lib/shopify_api/connection.rb
shopify_api-5.2.3 lib/shopify_api/connection.rb
shopify_api-5.2.2 lib/shopify_api/connection.rb
shopify_api-5.2.1 lib/shopify_api/connection.rb