Sha256: 2e1297a400d8585a24524e56ec3b2f13731dba29865e6ca9d152e38ae64dba47

Contents?: true

Size: 1.15 KB

Versions: 15

Compression:

Stored size: 1.15 KB

Contents

module Spree
  module Api
    module Returnly
      class RefundsController < ApiController
        include ::Returnly::RefundsConfiguration

        def estimate
          authorize! :create, Order
          render json: refund_calculator_class.process(order, line_items_params)
        end

        def create
          authorize! :create, Order

          refunds = refunder_class.new order: order,
                                       line_items: line_items_params,
                                       product_refund_amount: product_refund_amount_param,
                                       shipping_refund_amount: shipping_refund_amount_param
          render json: refunds.proceed!
        end

        private

        def line_items_params
          return [] if params[:items].blank?
          params.require(:items)
        end

        def product_refund_amount_param
          params.require(:product_refund_amount)
        end

        def shipping_refund_amount_param
          params.require(:shipping_refund_amount)
        end

        def order
          @order ||= Spree::Order.find_by!(number: params[:order_id])
        end
      end
    end
  end
end

Version data entries

15 entries across 15 versions & 2 rubygems

Version Path
spree-returnly-0.13.1 app/controllers/spree/api/returnly/refunds_controller.rb
solidus-returnly-0.13.1 app/controllers/spree/api/returnly/refunds_controller.rb
spree-returnly-0.13.0 app/controllers/spree/api/returnly/refunds_controller.rb
solidus-returnly-0.13.0 app/controllers/spree/api/returnly/refunds_controller.rb
solidus-returnly-0.12.0 app/controllers/spree/api/returnly/refunds_controller.rb
solidus-returnly-0.11.0 app/controllers/spree/api/returnly/refunds_controller.rb
solidus-returnly-0.10.0 app/controllers/spree/api/returnly/refunds_controller.rb
solidus-returnly-0.9.0 app/controllers/spree/api/returnly/refunds_controller.rb
solidus-returnly-0.8.1 app/controllers/spree/api/returnly/refunds_controller.rb
solidus-returnly-0.8.0 app/controllers/spree/api/returnly/refunds_controller.rb
solidus-returnly-0.7.1 app/controllers/spree/api/returnly/refunds_controller.rb
solidus-returnly-0.7.0 app/controllers/spree/api/returnly/refunds_controller.rb
solidus-returnly-0.6.2 app/controllers/spree/api/returnly/refunds_controller.rb
solidus-returnly-0.6.1 app/controllers/spree/api/returnly/refunds_controller.rb
solidus-returnly-0.6.0 app/controllers/spree/api/returnly/refunds_controller.rb