1
0
Fork 0
mirror of https://github.com/maybe-finance/maybe.git synced 2025-07-19 05:09:38 +02:00
Maybe/app/controllers/accounts_controller.rb

47 lines
1.3 KiB
Ruby
Raw Normal View History

2024-02-02 09:05:04 -06:00
class AccountsController < ApplicationController
before_action :authenticate_user!
2024-02-02 09:05:04 -06:00
def new
@account = Account.new(
balance: nil,
accountable: Accountable.from_type(params[:type])&.new
)
2024-02-02 15:31:32 -06:00
end
2024-02-02 09:05:04 -06:00
def show
@account = Current.family.accounts.find(params[:id])
@period = Period.find_by_name(params[:period])
if @period.nil?
start_date = params[:start_date].presence&.to_date
end_date = params[:end_date].presence&.to_date
if start_date.is_a?(Date) && end_date.is_a?(Date) && start_date <= end_date
@period = Period.new(name: "custom", date_range: start_date..end_date)
else
params[:period] = "last_30_days"
@period = Period.find_by_name(params[:period])
end
end
@balance_series = @account.balance_series(@period)
@valuation_series = @account.valuation_series
2024-02-02 09:05:04 -06:00
end
def create
@account = Current.family.accounts.build(account_params.except(:accountable_type))
@account.accountable = Accountable.from_type(account_params[:accountable_type])&.new
if @account.save
redirect_to accounts_path, notice: t(".success")
else
2024-02-02 23:06:29 +00:00
render "new", status: :unprocessable_entity
end
end
private
def account_params
params.require(:account).permit(:name, :accountable_type, :balance, :currency, :subtype)
end
2024-02-02 09:05:04 -06:00
end