From 00837452a86e2de11acfa96daa28d158a61ba171 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andres=20Keskk=C3=BCla?= Date: Mon, 8 Dec 2014 17:01:17 +0200 Subject: [PATCH] Refactored whois models to a module and subclasses --- app/models/concerns/domain_version_observer.rb | 15 ++++++++++----- app/models/whois.rb | 2 ++ app/models/whois/private_domain.rb | 5 +++++ app/models/whois/private_server.rb | 6 ++++++ app/models/whois/public_domain.rb | 5 +++++ app/models/whois/public_server.rb | 6 ++++++ app/models/whois/whois_private_domain.rb | 3 --- app/models/whois/whois_private_server.rb | 4 ---- app/models/whois/whois_public_domain.rb | 3 --- app/models/whois/whois_public_server.rb | 4 ---- config/database-example.yml | 18 ++++++++++++++---- 11 files changed, 48 insertions(+), 23 deletions(-) create mode 100644 app/models/whois.rb create mode 100644 app/models/whois/private_domain.rb create mode 100644 app/models/whois/private_server.rb create mode 100644 app/models/whois/public_domain.rb create mode 100644 app/models/whois/public_server.rb delete mode 100644 app/models/whois/whois_private_domain.rb delete mode 100644 app/models/whois/whois_private_server.rb delete mode 100644 app/models/whois/whois_public_domain.rb delete mode 100644 app/models/whois/whois_public_server.rb diff --git a/app/models/concerns/domain_version_observer.rb b/app/models/concerns/domain_version_observer.rb index e3d37ee3e..09175aa4d 100644 --- a/app/models/concerns/domain_version_observer.rb +++ b/app/models/concerns/domain_version_observer.rb @@ -11,13 +11,18 @@ module DomainVersionObserver name = domain_name return unless name body = snapshot - delay.update_whois(name, body) + delay.update_private_whois(name, body) + delay.update_public_whois(name, body) end - # not sure we need to pass in the params since i don't know if delayed job has access to - # all the regular attributes and stuff - def update_whois(domain_name, body) - wd = WhoisDomain.find_or_initialize_by(name: domain_name) + def update_private_whois(domain_name, body) + wd = Whois::PublicDomain.find_or_initialize_by(name: domain_name) + wd.body = body + wd.save! + end + + def update_public_whois(domain_name, body) + wd = Whois::PrivateDomain.find_or_initialize_by(name: domain_name) wd.body = body wd.save! end diff --git a/app/models/whois.rb b/app/models/whois.rb new file mode 100644 index 000000000..1364d5099 --- /dev/null +++ b/app/models/whois.rb @@ -0,0 +1,2 @@ +module Whois +end diff --git a/app/models/whois/private_domain.rb b/app/models/whois/private_domain.rb new file mode 100644 index 000000000..9f3a79178 --- /dev/null +++ b/app/models/whois/private_domain.rb @@ -0,0 +1,5 @@ +module Whois + class PrivateDomain < PrivateServer + self.table_name = 'domains' + end +end diff --git a/app/models/whois/private_server.rb b/app/models/whois/private_server.rb new file mode 100644 index 000000000..51f52d0fa --- /dev/null +++ b/app/models/whois/private_server.rb @@ -0,0 +1,6 @@ +module Whois + class PrivateServer < ActiveRecord::Base + self.abstract_class = true + establish_connection :"#{Rails.env}_private_whois" + end +end diff --git a/app/models/whois/public_domain.rb b/app/models/whois/public_domain.rb new file mode 100644 index 000000000..3c019eb02 --- /dev/null +++ b/app/models/whois/public_domain.rb @@ -0,0 +1,5 @@ +module Whois + class PublicDomain < PublicServer + self.table_name = 'domains' + end +end diff --git a/app/models/whois/public_server.rb b/app/models/whois/public_server.rb new file mode 100644 index 000000000..4a5d6eb4e --- /dev/null +++ b/app/models/whois/public_server.rb @@ -0,0 +1,6 @@ +module Whois + class PublicServer < ActiveRecord::Base + self.abstract_class = true + establish_connection :"#{Rails.env}_public_whois" + end +end diff --git a/app/models/whois/whois_private_domain.rb b/app/models/whois/whois_private_domain.rb deleted file mode 100644 index 2a43a79b6..000000000 --- a/app/models/whois/whois_private_domain.rb +++ /dev/null @@ -1,3 +0,0 @@ -class WhoisDomain < WhoisPrivateServer - self.table_name = 'domains' -end diff --git a/app/models/whois/whois_private_server.rb b/app/models/whois/whois_private_server.rb deleted file mode 100644 index 74c635cd2..000000000 --- a/app/models/whois/whois_private_server.rb +++ /dev/null @@ -1,4 +0,0 @@ -class WhoisPrivateServer < ActiveRecord::Base - self.abstract_class = true - establish_connection :"#{Rails.env}_private_whois" -end diff --git a/app/models/whois/whois_public_domain.rb b/app/models/whois/whois_public_domain.rb deleted file mode 100644 index 4b2eb49c3..000000000 --- a/app/models/whois/whois_public_domain.rb +++ /dev/null @@ -1,3 +0,0 @@ -class WhoisDomain < WhoisPublicServer - self.table_name = 'domains' -end diff --git a/app/models/whois/whois_public_server.rb b/app/models/whois/whois_public_server.rb deleted file mode 100644 index fb14b1ea5..000000000 --- a/app/models/whois/whois_public_server.rb +++ /dev/null @@ -1,4 +0,0 @@ -class WhoisPublicServer < ActiveRecord::Base - self.abstract_class = true - establish_connection :"#{Rails.env}_public_whois" -end diff --git a/config/database-example.yml b/config/database-example.yml index f19b20c42..7c28d927e 100644 --- a/config/database-example.yml +++ b/config/database-example.yml @@ -18,8 +18,18 @@ production: <<: *default database: registry_production -development_whois: - database: whois_development +development_private_whois: + <<: *default + database: whois_private -test_whois: - database: test_whois +development_private_whois: + <<: *default + database: whois_public + +production_public_whois: + <<: *default + database: production_whois_public + +production_private_whois: + <<: *default + database: production_whois_private