Sha256: 939e6a14c99ddf5b022b839d1296116d5f7ffa0e0c1df976a6740e4e4c9afc93

Contents?: true

Size: 852 Bytes

Versions: 18

Compression:

Stored size: 852 Bytes

Contents

# frozen_string_literal: true

module FlowcommerceSpree
  module Webhooks
    class FraudStatusChanged
      attr_accessor :errors
      alias full_messages errors

      def self.process(data, opts = {})
        new(data, opts).process
      end

      def initialize(data, opts = {})
        @data = data
        @opts = opts
        @errors = []
      end

      def process
        order_number = @data.dig('order', 'number')
        errors << { message: 'Order number param missing' } && (return self) unless order_number

        order = Spree::Order.find_by(number: order_number)
        errors << { message: "Order #{order_number} not found" } && (return self) unless order

        if @data['status'] == 'declined'
          order.update_columns(fraudulent: true)
          order.cancel!
        end

        order
      end
    end
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
flowcommerce_spree-0.0.22 app/services/flowcommerce_spree/webhooks/fraud_status_changed.rb
flowcommerce_spree-0.0.21 app/services/flowcommerce_spree/webhooks/fraud_status_changed.rb
flowcommerce_spree-0.0.20 app/services/flowcommerce_spree/webhooks/fraud_status_changed.rb
flowcommerce_spree-0.0.19 app/services/flowcommerce_spree/webhooks/fraud_status_changed.rb
flowcommerce_spree-0.0.18 app/services/flowcommerce_spree/webhooks/fraud_status_changed.rb
flowcommerce_spree-0.0.17 app/services/flowcommerce_spree/webhooks/fraud_status_changed.rb
flowcommerce_spree-0.0.16 app/services/flowcommerce_spree/webhooks/fraud_status_changed.rb
flowcommerce_spree-0.0.15 app/services/flowcommerce_spree/webhooks/fraud_status_changed.rb
flowcommerce_spree-0.0.14 app/services/flowcommerce_spree/webhooks/fraud_status_changed.rb
flowcommerce_spree-0.0.13 app/services/flowcommerce_spree/webhooks/fraud_status_changed.rb
flowcommerce_spree-0.0.12 app/services/flowcommerce_spree/webhooks/fraud_status_changed.rb
flowcommerce_spree-0.0.11 app/services/flowcommerce_spree/webhooks/fraud_status_changed.rb
flowcommerce_spree-0.0.10 app/services/flowcommerce_spree/webhooks/fraud_status_changed.rb
flowcommerce_spree-0.0.9 app/services/flowcommerce_spree/webhooks/fraud_status_changed.rb
flowcommerce_spree-0.0.8 app/services/flowcommerce_spree/webhooks/fraud_status_changed.rb
flowcommerce_spree-0.0.7 app/services/flowcommerce_spree/webhooks/fraud_status_changed.rb
flowcommerce_spree-0.0.6 app/services/flowcommerce_spree/webhooks/fraud_status_changed.rb
flowcommerce_spree-0.0.5 app/services/flowcommerce_spree/webhooks/fraud_status_changed.rb