11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
# File 'lib/table_sync/receiving/handler.rb', line 11
def call
configs.each do |config|
next unless config.allow_event?(event)
data = processed_data(config)
next if data.empty?
version_key = config.version_key(data: data)
data.each { |row| row[version_key] = version }
target_keys = config.target_keys(data: data)
validate_data(data, target_keys: target_keys)
data.sort_by! { |row| row.values_at(*target_keys).to_s }
params = { data: data, target_keys: target_keys, version_key: version_key }
if event == :update
params[:default_values] = config.default_values(data: data)
end
config.wrap_receiving(event: event, **params) do
perform(config, params)
end
end
end
|