06/05 Optimize app: add Plaid reset sync
This commit is contained in:
@@ -369,6 +369,25 @@ def refresh_liabilities_view(item_db_id):
|
||||
return redirect(url_for('plaid.index'))
|
||||
|
||||
|
||||
# ── Full Resync (clear cursor so next sync fetches full history) ──────────────
|
||||
|
||||
@plaid_bp.route('/resync/<int:item_db_id>', methods=['POST'])
|
||||
@login_required
|
||||
def full_resync(item_db_id):
|
||||
item = db.get_or_404(PlaidItem, item_db_id)
|
||||
item.cursor = None
|
||||
item.last_synced_at = None
|
||||
for pa in item.accounts.filter_by(is_active=True).all():
|
||||
pa.last_sync_date = None
|
||||
db.session.commit()
|
||||
flash(
|
||||
f'{item.institution_name}: cursor reset. '
|
||||
f'Next sync will fetch full available history — duplicates will be skipped automatically.',
|
||||
'info'
|
||||
)
|
||||
return redirect(url_for('plaid.index'))
|
||||
|
||||
|
||||
# ── Disconnect ────────────────────────────────────────────────────────────────
|
||||
|
||||
@plaid_bp.route('/disconnect/<int:item_db_id>', methods=['POST'])
|
||||
|
||||
Reference in New Issue
Block a user