mirror of
https://github.com/internetee/registry.git
synced 2025-06-12 23:54:44 +02:00
Did some more refactoring
This commit is contained in:
parent
c83b99b6de
commit
9799752dfb
1 changed files with 13 additions and 13 deletions
|
@ -64,19 +64,19 @@ module Versions
|
|||
|
||||
module ClassMethods
|
||||
def all_versions_for(ids, time)
|
||||
ver_klass = paper_trail.version_class
|
||||
from_history = ver_klass.where(item_id: ids.to_a).
|
||||
order(:item_id).
|
||||
preceding(time + 1, true).
|
||||
select("distinct on (item_id) #{ver_klass.table_name}.*").
|
||||
map do |ver|
|
||||
valid_columns = ver.item_type.constantize&.column_names
|
||||
o = new(ver.object&.slice(*valid_columns))
|
||||
o.version_loader = ver
|
||||
changes = ver.object_changes.to_h&.slice(*valid_columns)
|
||||
changes.each { |k, v| o.public_send("#{k}=", v[-1]) }
|
||||
o
|
||||
end
|
||||
ver_klass = paper_trail.version_class
|
||||
from_history = ver_klass.where(item_id: ids.to_a)
|
||||
.order(:item_id)
|
||||
.preceding(time + 1, true)
|
||||
.select("distinct on (item_id) #{ver_klass.table_name}.*")
|
||||
.map do |ver|
|
||||
valid_columns = ver.item_type.constantize&.column_names
|
||||
o = new(ver.object&.slice(*valid_columns))
|
||||
o.version_loader = ver
|
||||
changes = ver.object_changes.to_h&.slice(*valid_columns)
|
||||
changes.each { |k, v| o.public_send("#{k}=", v[-1]) }
|
||||
o
|
||||
end
|
||||
not_in_history = where(id: (ids.to_a - from_history.map(&:id)))
|
||||
|
||||
from_history + not_in_history
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue