mirror of
https://github.com/maybe-finance/maybe.git
synced 2025-07-19 21:29:38 +02:00
44 lines
1 KiB
Ruby
44 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
|