mirror of
https://github.com/maybe-finance/maybe.git
synced 2025-08-02 20:15:22 +02:00
Isolate infinite loop bug, add timeout to actions (#583)
* Isolate infinite loop bug, add timeout to actions * Increase timeout to allow for temporary failure * Set correct timeout, implement temporary fix * Trigger syncs at controller layer
This commit is contained in:
parent
2d406274ac
commit
b1bfdef8ff
7 changed files with 36 additions and 20 deletions
|
@ -63,6 +63,7 @@ class TransactionsController < ApplicationController
|
|||
|
||||
respond_to do |format|
|
||||
if @transaction.save
|
||||
@transaction.account.sync_later
|
||||
format.html { redirect_to transactions_url, notice: t(".success") }
|
||||
else
|
||||
format.html { render :new, status: :unprocessable_entity }
|
||||
|
@ -73,6 +74,8 @@ class TransactionsController < ApplicationController
|
|||
def update
|
||||
respond_to do |format|
|
||||
if @transaction.update(transaction_params)
|
||||
@transaction.account.sync_later
|
||||
|
||||
format.html { redirect_to transaction_url(@transaction), notice: t(".success") }
|
||||
format.turbo_stream do
|
||||
render turbo_stream: [
|
||||
|
@ -88,6 +91,7 @@ class TransactionsController < ApplicationController
|
|||
|
||||
def destroy
|
||||
@transaction.destroy!
|
||||
@transaction.account.sync_later
|
||||
|
||||
respond_to do |format|
|
||||
format.html { redirect_to transactions_url, notice: t(".success") }
|
||||
|
|
|
@ -7,6 +7,8 @@ class ValuationsController < ApplicationController
|
|||
# TODO: placeholder logic until we have a better abstraction for trends
|
||||
@valuation = @account.valuations.new(valuation_params.merge(currency: Current.family.currency))
|
||||
if @valuation.save
|
||||
@valuation.account.sync_later
|
||||
|
||||
respond_to do |format|
|
||||
format.html { redirect_to account_path(@account), notice: "Valuation created" }
|
||||
format.turbo_stream
|
||||
|
@ -30,6 +32,8 @@ class ValuationsController < ApplicationController
|
|||
def update
|
||||
@valuation = Valuation.find(params[:id])
|
||||
if @valuation.update(valuation_params)
|
||||
@valuation.account.sync_later
|
||||
|
||||
redirect_to account_path(@valuation.account), notice: "Valuation updated"
|
||||
else
|
||||
render :edit, status: :unprocessable_entity
|
||||
|
@ -42,7 +46,8 @@ class ValuationsController < ApplicationController
|
|||
def destroy
|
||||
@valuation = Valuation.find(params[:id])
|
||||
@account = @valuation.account
|
||||
@valuation.destroy
|
||||
@valuation.destroy!
|
||||
@account.sync_later
|
||||
|
||||
respond_to do |format|
|
||||
format.html { redirect_to account_path(@account), notice: "Valuation deleted" }
|
||||
|
|
|
@ -6,9 +6,10 @@ class Account < ApplicationRecord
|
|||
|
||||
broadcasts_refreshes
|
||||
belongs_to :family
|
||||
has_many :balances
|
||||
has_many :valuations
|
||||
has_many :transactions
|
||||
|
||||
has_many :balances, dependent: :destroy
|
||||
has_many :valuations, dependent: :destroy
|
||||
has_many :transactions, dependent: :destroy
|
||||
|
||||
monetize :balance
|
||||
|
||||
|
|
|
@ -6,8 +6,6 @@ class Transaction < ApplicationRecord
|
|||
|
||||
validates :name, :date, :amount, :account, presence: true
|
||||
|
||||
after_commit :sync_account
|
||||
|
||||
monetize :amount
|
||||
|
||||
scope :inflows, -> { where("amount > 0") }
|
||||
|
@ -42,10 +40,4 @@ class Transaction < ApplicationRecord
|
|||
|
||||
filters
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def sync_account
|
||||
self.account.sync_later
|
||||
end
|
||||
end
|
||||
|
|
|
@ -3,7 +3,6 @@ class Valuation < ApplicationRecord
|
|||
|
||||
belongs_to :account
|
||||
validates :account, :date, :value, presence: true
|
||||
after_commit :sync_account
|
||||
monetize :value
|
||||
|
||||
scope :in_period, ->(period) { period.date_range.nil? ? all : where(date: period.date_range) }
|
||||
|
@ -11,9 +10,4 @@ class Valuation < ApplicationRecord
|
|||
def self.to_series
|
||||
TimeSeries.from_collection all, :value_money
|
||||
end
|
||||
|
||||
private
|
||||
def sync_account
|
||||
self.account.sync_later
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue