From f5a3e51e69143ab6e4e0df087ceb607b5b4cbf43 Mon Sep 17 00:00:00 2001 From: Vladimir Krylov Date: Fri, 4 Dec 2015 12:19:50 +0200 Subject: [PATCH] Story#108521790 first scratch to get domain real historical object --- app/models/legacy/domain_history.rb | 32 +++++++++++++++++++++++++---- lib/tasks/import.rake | 2 -- 2 files changed, 28 insertions(+), 6 deletions(-) diff --git a/app/models/legacy/domain_history.rb b/app/models/legacy/domain_history.rb index d45aa5f92..e5439655d 100644 --- a/app/models/legacy/domain_history.rb +++ b/app/models/legacy/domain_history.rb @@ -1,13 +1,36 @@ module Legacy class DomainHistory < Db self.table_name = :domain_history + self.primary_key = :id + belongs_to :object_registry, foreign_key: :id + belongs_to :object, foreign_key: :id belongs_to :domain, foreign_key: :id belongs_to :history, foreign_key: :historyid has_one :object_history, foreign_key: :historyid, primary_key: :historyid - def get_current_domain_object(param) - p "not implemented #{__method__}" + def get_current_domain_object(change_param) + x = self + { + name: SimpleIDN.to_unicode(x.object_registry.name.try(:strip)), + registrar_id: Registrar.find_by(legacy_id: x.object.try(:clid)).try(:id), + registered_at: x.object_registry.try(:crdate), + valid_from: x.object_registry.try(:crdate), + valid_to: x.exdate, + auth_info: x.object.authinfopw.try(:strip), + created_at: x.object_registry.try(:crdate), + updated_at: x.object.read_attribute(:update).nil? ? x.object_registry.try(:crdate) : x.object.read_attribute(:update), + name_dirty: x.object_registry.name.try(:strip), + name_puny: SimpleIDN.to_ascii(x.object_registry.name.try(:strip)), + period: 1, + period_unit: 'y', + creator_str: x.object_registry.try(:registrar).try(:name), + updator_str: x.object.try(:registrar).try(:name) ? x.object.try(:registrar).try(:name) : x.object_registry.try(:registrar).try(:name), + legacy_id: x.id, + legacy_registrar_id: x.object_registry.try(:crid), + legacy_registrant_id: x.registrant, + statuses: x.states + } end def get_current_changes(param) @@ -16,7 +39,7 @@ module Legacy class << self def changes_dates_for domain_id - sql = %Q{SELECT dh.*, valid_from--, extract(epoch from h.valid_from) valid_from_unix, extract(epoch from h.valid_to) valid_to_unix + sql = %Q{SELECT dh.*, valid_from FROM domain_history dh JOIN history h ON dh.historyid=h.id where dh.id=#{domain_id};} # find_by_sql(sql).map{|e| e.attributes.values_at("valid_from") }.flatten.each_with_object({}){|e,h|h[e.try(:to_f)] = [self]} @@ -28,7 +51,8 @@ module Legacy end def get_record_at domain_id, rec_id - sql = %Q{SELECT dh.*, h.valid_from, h.valid_to from domain_history dh JOIN history h ON dh.historyid=h.id + sql = %Q{SELECT dh.*, h.valid_from, h.valid_to + from domain_history dh JOIN history h ON dh.historyid=h.id where dh.id=#{domain_id} and dh.historyid = #{rec_id} ;} find_by_sql(sql).first end diff --git a/lib/tasks/import.rake b/lib/tasks/import.rake index abe3c2918..63130dde9 100644 --- a/lib/tasks/import.rake +++ b/lib/tasks/import.rake @@ -789,8 +789,6 @@ namespace :import do keys = history.keys.compact.sort i = 0 keys.each_with_index do |time| - - p time history[time].each do |orig_history_klass| event = :update event = :create if i == 0