mirror of
https://github.com/maybe-finance/maybe.git
synced 2025-07-19 21:29:38 +02:00
Show an error notification if account cannot be manually synced (#761)
This commit is contained in:
parent
34811d8fd8
commit
30c19b9d2e
3 changed files with 91 additions and 84 deletions
|
@ -74,14 +74,22 @@ class AccountsController < ApplicationController
|
||||||
end
|
end
|
||||||
|
|
||||||
def sync
|
def sync
|
||||||
@account.sync_later if @account.can_sync?
|
if @account.can_sync?
|
||||||
|
@account.sync_later
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
format.html { redirect_to account_path(@account), notice: t(".success") }
|
format.html { redirect_to account_path(@account), notice: t(".success") }
|
||||||
format.turbo_stream do
|
format.turbo_stream do
|
||||||
render turbo_stream: turbo_stream.append("notification-tray", partial: "shared/notification", locals: { type: "success", content: { body: t(".success") } })
|
render turbo_stream: turbo_stream.append("notification-tray", partial: "shared/notification", locals: { type: "success", content: { body: t(".success") } })
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
else
|
||||||
|
respond_to do |format|
|
||||||
|
format.html { redirect_to account_path(@account), notice: t(".cannot_sync") }
|
||||||
|
format.turbo_stream do
|
||||||
|
render turbo_stream: turbo_stream.append("notification-tray", partial: "shared/notification", locals: { type: "error", content: { body: t(".cannot_sync") } })
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
|
@ -17,10 +17,8 @@ module Account::Syncable
|
||||||
self.balances.upsert_all(calculator.daily_balances, unique_by: :index_account_balances_on_account_id_date_currency_unique)
|
self.balances.upsert_all(calculator.daily_balances, unique_by: :index_account_balances_on_account_id_date_currency_unique)
|
||||||
self.balances.where("date < ?", effective_start_date).delete_all
|
self.balances.where("date < ?", effective_start_date).delete_all
|
||||||
new_balance = calculator.daily_balances.select { |b| b[:currency] == self.currency }.last[:balance]
|
new_balance = calculator.daily_balances.select { |b| b[:currency] == self.currency }.last[:balance]
|
||||||
self.balance = new_balance
|
|
||||||
self.save!
|
|
||||||
|
|
||||||
update!(status: "ok", last_sync_date: Date.today)
|
update!(status: "ok", last_sync_date: Date.today, balance: new_balance)
|
||||||
rescue => e
|
rescue => e
|
||||||
update!(status: "error")
|
update!(status: "error")
|
||||||
Rails.logger.error("Failed to sync account #{id}: #{e.message}")
|
Rails.logger.error("Failed to sync account #{id}: #{e.message}")
|
||||||
|
|
|
@ -38,6 +38,7 @@ en:
|
||||||
summary:
|
summary:
|
||||||
new: New account
|
new: New account
|
||||||
sync:
|
sync:
|
||||||
|
cannot_sync: Account cannot be synced at the moment
|
||||||
success: Account sync started
|
success: Account sync started
|
||||||
update:
|
update:
|
||||||
success: Account updated successfully
|
success: Account updated successfully
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue