Sha256: 539e0fcde81545348ddb3255f6e7ca8796904cf7347c757e1299aec6f5f68e4f

Contents?: true

Size: 939 Bytes

Versions: 6

Compression:

Stored size: 939 Bytes

Contents

module Spree
  module SpreeChannable
    module ReimbursementDecorator
      def send_reimbursement_email
        super unless order.is_channable_order?
      end

      def reimburse_channable_order
        return unless order.is_channable_order?

        client = ::Channable::Client.new
        client.return_update(customer_return.channable_return_id, channable_return)
      end

      def channable_return
        {
            status: channable_return_status
        }.to_json
      end

      def channable_return_status
        case reimbursement_status
        when 'reimbursed'
          'accepted'
        when 'errored'
          'cancelled'
        else
          'accepted'
        end
      end

      def self.prepended(base)
        base.state_machine.after_transition to: :reimbursed, do: :reimburse_channable_order
      end
    end
  end
end

Spree::Reimbursement.prepend(Spree::SpreeChannable::ReimbursementDecorator)

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
spree_channable-0.0.24 app/models/spree/reimbursement_decorator.rb
spree_channable-0.0.23 app/models/spree/reimbursement_decorator.rb
spree_channable-0.0.22 app/models/spree/reimbursement_decorator.rb
spree_channable-0.0.21 app/models/spree/reimbursement_decorator.rb
spree_channable-0.0.20 app/models/spree/reimbursement_decorator.rb
spree_channable-0.0.18.alpha app/models/spree/reimbursement_decorator.rb