Sha256: 51e277d1a086cfaf830a330de105e3ac76a8da05f4dbbb8735cca43186714274

Contents?: true

Size: 945 Bytes

Versions: 2

Compression:

Stored size: 945 Bytes

Contents

module Workarea
  module Kount
    class OrderFraudUpdateService
      delegate :gateway, to: Workarea::Kount

      attr_reader :order, :payment, :mode, :options

      def initialize(order:, payment:, mode: 'U', options: {})
        @order   = order
        @payment = payment
        @mode    = mode
        @options = options
      end

      def perform!
        kount_order.update_attributes!(update_response: kount_response)
        kount_response
      end

      def kount_order
        @kount_order ||= Workarea::Kount::Order.find(order.id)
      end

      private

        def update
          Workarea::Kount::RisUpdate.new(
            order: order,
            payment: payment,
            mode: mode,
            options: options.merge(
              kount_order: kount_order
            )
          ).to_h
        end

        def kount_response
          @kount_response ||= gateway.call(update)
        end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
workarea-kount-3.3.1 app/services/workarea/kount/order_fraud_update_service.rb
workarea-kount-3.3.0 app/services/workarea/kount/order_fraud_update_service.rb