class Admin::Accounting::Families::PaymentMethodsController < Admin::Accounting::Controller
  def index
    render_success :ok, json: vault_service['accountvaults'].map { |v| vault_props(v) }
  end

  def show
    render_success :ok, json: vault_props(vault_service['accountvault'])
  end

  def destroy
    render_success :ok, json: vault_service
  end

  private
    def vault_service
      @vault_service ||= Paya::VaultService.call(current_school, action_name.to_sym, params)
    end

    def vault_props(vault)
      {}.tap do |props|
        props[:id] = vault['id']
        props[:payment_method] = vault['payment_method']
        props[:full_name] = vault['account_holder_name']
        props[:last_four] = vault['last_four']
        props[:expiration] = vault['exp_date'].insert(2, '/')
        props[:card_type] = card_type(vault['account_type'])
      end
    end

    def card_type(card)
      case card.to_sym
      when :mc
        :mastercard
      when :disc
        :discover
      when :visa, :amex
        card.to_sym
      else
        :other
      end
    end
end
