mirror of
https://github.com/maybe-finance/maybe.git
synced 2025-07-21 22:29:38 +02:00
* PlaidConnectable concern * Remove bad abstraction * Put sync implementations in own concerns * Sync strategies * Move sync orchestration to Sync class * Clean up sync class, add state machine * Basic market data sync cron * Fix price sync * Improve sync window column names, add timestamps * 30 day syncs by default * Clean up market data methods * Report high duplicate sync counts to Sentry * Add sync states throughout app * account tab session * Persistent account tab selections * Remove manual sleep * Add migration to clear stale syncs on self hosted apps * Tweak sync states * Sync completion event broadcasts * Fix timezones in tests * Cleanup * More cleanup * Plaid item UI broadcasts for sync * Fix account ID namespace conflict * Sync broadcasters * Smoother account sync refreshes * Remove test sync delay
42 lines
975 B
Ruby
42 lines
975 B
Ruby
class PlaidItemsController < ApplicationController
|
|
before_action :set_plaid_item, only: %i[destroy sync]
|
|
|
|
def create
|
|
Current.family.create_plaid_item!(
|
|
public_token: plaid_item_params[:public_token],
|
|
item_name: item_name,
|
|
region: plaid_item_params[:region]
|
|
)
|
|
|
|
redirect_to accounts_path, notice: t(".success")
|
|
end
|
|
|
|
def destroy
|
|
@plaid_item.destroy_later
|
|
redirect_to accounts_path, notice: t(".success")
|
|
end
|
|
|
|
def sync
|
|
unless @plaid_item.syncing?
|
|
@plaid_item.sync_later
|
|
end
|
|
|
|
respond_to do |format|
|
|
format.html { redirect_back_or_to accounts_path }
|
|
format.json { head :ok }
|
|
end
|
|
end
|
|
|
|
private
|
|
def set_plaid_item
|
|
@plaid_item = Current.family.plaid_items.find(params[:id])
|
|
end
|
|
|
|
def plaid_item_params
|
|
params.require(:plaid_item).permit(:public_token, :region, metadata: {})
|
|
end
|
|
|
|
def item_name
|
|
plaid_item_params.dig(:metadata, :institution, :name)
|
|
end
|
|
end
|