# frozen_string_literal: true module SolidusNexio class PaymentStatesController < Spree::StoreController def show payment = payments_scope.find(params[:payment_id]) render json: { data: { state: payment.state } } end def capture payment = payments_scope.find_by(number: params[:payment_id]) if payment @result = payment_method.capture_order_payment(payment, params[:id], params[:status]) render :capture, layout: false else head 404 end end private def payments_scope current_order.payments.merge(payment_method.payments) end def payment_method @payment_method ||= PaymentMethod.active.available_to_users.find(params[:payment_method_id]) end end end