mirror of
https://github.com/we-promise/sure.git
synced 2026-05-09 21:54:58 +00:00
* feat(api): expose budget state * fix(api): guard malformed budget ids * fix(api): address budget state review * fix(api): address budget state review * fix(api): document budget id formats * fix(api): align budget category docs auth * fix(api): lighten budget category index payload * fix(api): use shared pagination clamp * fix(api): centralize budget filter handling
37 lines
1.6 KiB
Ruby
37 lines
1.6 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
money_to_minor_units = lambda do |money|
|
|
(money.amount * money.currency.minor_unit_conversion).round(0).to_i if money
|
|
end
|
|
|
|
include_derived_amounts = local_assigns.fetch(:include_derived_amounts, true)
|
|
|
|
json.id budget.id
|
|
json.start_date budget.start_date
|
|
json.end_date budget.end_date
|
|
json.name budget.name
|
|
json.currency budget.currency
|
|
json.initialized budget.initialized?
|
|
json.current budget.current?
|
|
|
|
json.budgeted_spending budget.budgeted_spending_money&.format
|
|
json.budgeted_spending_cents money_to_minor_units.call(budget.budgeted_spending_money)
|
|
json.expected_income budget.expected_income_money&.format
|
|
json.expected_income_cents money_to_minor_units.call(budget.expected_income_money)
|
|
json.allocated_spending budget.allocated_spending_money.format
|
|
json.allocated_spending_cents money_to_minor_units.call(budget.allocated_spending_money)
|
|
|
|
if include_derived_amounts
|
|
json.actual_spending budget.actual_spending_money.format
|
|
json.actual_spending_cents money_to_minor_units.call(budget.actual_spending_money)
|
|
json.actual_income budget.actual_income_money.format
|
|
json.actual_income_cents money_to_minor_units.call(budget.actual_income_money)
|
|
json.available_to_spend budget.available_to_spend_money.format
|
|
json.available_to_spend_cents money_to_minor_units.call(budget.available_to_spend_money)
|
|
json.available_to_allocate budget.available_to_allocate_money.format
|
|
json.available_to_allocate_cents money_to_minor_units.call(budget.available_to_allocate_money)
|
|
end
|
|
|
|
json.created_at budget.created_at.iso8601
|
|
json.updated_at budget.updated_at.iso8601
|