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

65 lines
1.8 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(
original_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
# Temporary while dummy data is being used
# @account = Current.family.accounts.find(params[:id])
@account = sample_account
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, :original_balance, :original_currency, :subtype)
end
def sample_account
OpenStruct.new(
id: 1,
name: "Sample Account",
original_balance: BigDecimal("1115181"),
original_currency: "USD",
converted_balance: BigDecimal("1115181"), # Assuming conversion rate is 1 for simplicity
converted_currency: "USD",
dollar_change: BigDecimal("1553.43"), # Added dollar change
percent_change: BigDecimal("0.9"), # Added percent change
subtype: "Checking",
accountable_type: "Depository",
balances: sample_balances
)
end
def sample_balances
4.times.map do |i|
OpenStruct.new(
date: "Feb #{12 + i} 2024",
description: "Manually entered",
amount: BigDecimal("1000") + (i * BigDecimal("100")),
change: i == 3 ? -50 : (i == 2 ? 0 : 100 + (i * 10)),
percentage_change: i == 3 ? -5 : (i == 2 ? 0 : 10 + i),
icon: i == 3 ? "arrow-down" : (i == 2 ? "minus" : (i.even? ? "arrow-down" : "arrow-up"))
)
end
end
2024-02-02 09:05:04 -06:00
end