mirror of
https://github.com/maybe-finance/maybe.git
synced 2025-08-07 22:45:20 +02:00
77 lines
2 KiB
Text
77 lines
2 KiB
Text
|
# frozen_string_literal: true
|
||
|
|
||
|
json.id transaction.id
|
||
|
json.date transaction.entry.date
|
||
|
json.amount transaction.entry.amount_money.format
|
||
|
json.currency transaction.entry.currency
|
||
|
json.name transaction.entry.name
|
||
|
json.notes transaction.entry.notes
|
||
|
json.classification transaction.entry.classification
|
||
|
|
||
|
# Account information
|
||
|
json.account do
|
||
|
json.id transaction.entry.account.id
|
||
|
json.name transaction.entry.account.name
|
||
|
json.account_type transaction.entry.account.accountable_type.underscore
|
||
|
end
|
||
|
|
||
|
# Category information
|
||
|
if transaction.category.present?
|
||
|
json.category do
|
||
|
json.id transaction.category.id
|
||
|
json.name transaction.category.name
|
||
|
json.classification transaction.category.classification
|
||
|
json.color transaction.category.color
|
||
|
json.icon transaction.category.lucide_icon
|
||
|
end
|
||
|
else
|
||
|
json.category nil
|
||
|
end
|
||
|
|
||
|
# Merchant information
|
||
|
if transaction.merchant.present?
|
||
|
json.merchant do
|
||
|
json.id transaction.merchant.id
|
||
|
json.name transaction.merchant.name
|
||
|
end
|
||
|
else
|
||
|
json.merchant nil
|
||
|
end
|
||
|
|
||
|
# Tags
|
||
|
json.tags transaction.tags do |tag|
|
||
|
json.id tag.id
|
||
|
json.name tag.name
|
||
|
json.color tag.color
|
||
|
end
|
||
|
|
||
|
# Transfer information (if this transaction is part of a transfer)
|
||
|
if transaction.transfer.present?
|
||
|
json.transfer do
|
||
|
json.id transaction.transfer.id
|
||
|
json.amount transaction.transfer.amount_abs.format
|
||
|
json.currency transaction.transfer.inflow_transaction.entry.currency
|
||
|
|
||
|
# Other transaction in the transfer
|
||
|
if transaction.transfer.inflow_transaction == transaction
|
||
|
other_transaction = transaction.transfer.outflow_transaction
|
||
|
else
|
||
|
other_transaction = transaction.transfer.inflow_transaction
|
||
|
end
|
||
|
|
||
|
if other_transaction.present?
|
||
|
json.other_account do
|
||
|
json.id other_transaction.entry.account.id
|
||
|
json.name other_transaction.entry.account.name
|
||
|
json.account_type other_transaction.entry.account.accountable_type.underscore
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
else
|
||
|
json.transfer nil
|
||
|
end
|
||
|
|
||
|
# Additional metadata
|
||
|
json.created_at transaction.created_at.iso8601
|
||
|
json.updated_at transaction.updated_at.iso8601
|