class Admin::Threoze::PaymentsController < Admin::Controller
  def create
    if transaction_service[:success]
      payment_service
      render_success :ok
    else
      render_error :unprocessable_entity, errors: transaction_service
    end
  end

  private
    def transaction_service
      Threoze::Payjunction::TransactionService.call(
        current_school,
        :create,
        { vault_id: params[:vault_id], transaction_amount: params[:total] }
      )
    end

    def payment_service
      Threoze::PaymentService.call(
        current_school,
        :create,
        {
          id: params[:invoice_id],
          transaction_amount: params[:total],
          card_type: params[:card_type],
          email: true
        }
      )
    end
end
