mirror of
https://github.com/maybe-finance/maybe.git
synced 2025-07-19 13:19:39 +02:00
* Remove stale 1.0 import logic and model * Fresh start * Checkpoint before removing nav * First working prototype * Add trade, account, and mint import flows * Basic working version with tests * System tests for each import type * Clean up mappings flow * Clean up PR, refactor stale code, tests * Add back row validations * Row validations * Fix import job test * Fix import navigation * Fix mint import configuration form * Currency preset for new accounts
43 lines
1 KiB
Ruby
43 lines
1 KiB
Ruby
class Import::MappingsController < ApplicationController
|
|
before_action :set_import
|
|
|
|
def update
|
|
mapping = @import.mappings.find(params[:id])
|
|
|
|
mapping.update! \
|
|
create_when_empty: create_when_empty,
|
|
mappable: mappable,
|
|
value: mapping_params[:value]
|
|
|
|
redirect_back_or_to import_confirm_path(@import)
|
|
end
|
|
|
|
private
|
|
def mapping_params
|
|
params.require(:import_mapping).permit(:type, :key, :mappable_id, :mappable_type, :value)
|
|
end
|
|
|
|
def set_import
|
|
@import = Current.family.imports.find(params[:import_id])
|
|
end
|
|
|
|
def mappable
|
|
return nil unless mappable_class.present?
|
|
|
|
@mappable ||= mappable_class.find_by(id: mapping_params[:mappable_id], family: Current.family)
|
|
end
|
|
|
|
def create_when_empty
|
|
return false unless mapping_class.present?
|
|
|
|
mapping_params[:mappable_id] == mapping_class::CREATE_NEW_KEY
|
|
end
|
|
|
|
def mappable_class
|
|
mapping_params[:mappable_type]&.constantize
|
|
end
|
|
|
|
def mapping_class
|
|
mapping_params[:type]&.constantize
|
|
end
|
|
end
|