diff --git a/app/controllers/admin/base_controller.rb b/app/controllers/admin/base_controller.rb index b5e91f2ab..d38c02316 100644 --- a/app/controllers/admin/base_controller.rb +++ b/app/controllers/admin/base_controller.rb @@ -21,5 +21,19 @@ module Admin def paginate? params[:results_per_page].to_i.positive? end + + def render_by_format(page, filename) + respond_to do |format| + format.html do + render page + end + format.csv do + raw_csv = @q.result.to_csv + send_data raw_csv, + filename: "#{filename}_#{Time.zone.now.to_formatted_s(:number)}.csv", + type: "#{Mime[:csv]}; charset=utf-8" + end + end + end end end diff --git a/app/controllers/admin/blocked_domains_controller.rb b/app/controllers/admin/blocked_domains_controller.rb index bd9acd14a..d9bcb4f0f 100644 --- a/app/controllers/admin/blocked_domains_controller.rb +++ b/app/controllers/admin/blocked_domains_controller.rb @@ -9,17 +9,7 @@ module Admin @domains = @q.result.page(params[:page]) @domains = @domains.per(params[:results_per_page]) if params[:results_per_page].to_i.positive? - respond_to do |format| - format.html do - render 'admin/blocked_domains/index' - end - format.csv do - raw_csv = @q.result.to_csv - send_data raw_csv, - filename: "blocked_domains_#{Time.zone.now.to_formatted_s(:number)}.csv", - type: "#{Mime[:csv]}; charset=utf-8" - end - end + render_by_format('admin/blocked_domains/index', 'blocked_domains') end def new diff --git a/app/controllers/admin/contact_versions_controller.rb b/app/controllers/admin/contact_versions_controller.rb index 629e7edc7..b720290d8 100644 --- a/app/controllers/admin/contact_versions_controller.rb +++ b/app/controllers/admin/contact_versions_controller.rb @@ -28,17 +28,7 @@ module Admin @versions = @q.result.page(params[:page]) @versions = @versions.per(params[:results_per_page]) if params[:results_per_page].to_i.positive? - respond_to do |format| - format.html do - render 'admin/contact_versions/index' - end - format.csv do - raw_csv = @q.result.to_csv - send_data raw_csv, - filename: "contact_history_#{Time.zone.now.to_formatted_s(:number)}.csv", - type: "#{Mime[:csv]}; charset=utf-8" - end - end + render_by_format('admin/contact_versions/index', 'contact_history') end def show diff --git a/app/controllers/admin/contacts_controller.rb b/app/controllers/admin/contacts_controller.rb index 37e2acbc9..ea6ba066a 100644 --- a/app/controllers/admin/contacts_controller.rb +++ b/app/controllers/admin/contacts_controller.rb @@ -25,17 +25,7 @@ module Admin @contacts = @contacts.per(params[:results_per_page]) if params[:results_per_page].to_i.positive? - respond_to do |format| - format.html do - @contacts - end - format.csv do - raw_csv = @q.result.distinct.to_csv - send_data raw_csv, - filename: "contacts_#{Time.zone.now.to_formatted_s(:number)}.csv", - type: "#{Mime[:csv]}; charset=utf-8" - end - end + render_by_format('admin/contacts/index', 'contacts') end def filter_by_flags(contacts) diff --git a/app/controllers/admin/disputes_controller.rb b/app/controllers/admin/disputes_controller.rb index fa184b345..2b9eb041f 100644 --- a/app/controllers/admin/disputes_controller.rb +++ b/app/controllers/admin/disputes_controller.rb @@ -11,17 +11,7 @@ module Admin @disputes = sortable_dispute_query_for(Dispute.active.all, params[:q]) @closed_disputes = sortable_dispute_query_for(Dispute.closed.all, params[:q], closed: true) - respond_to do |format| - format.html do - render 'admin/disputes/index' - end - format.csv do - raw_csv = @q.result.to_csv - send_data raw_csv, - filename: "disputes_#{Time.zone.now.to_formatted_s(:number)}.csv", - type: "#{Mime[:csv]}; charset=utf-8" - end - end + render_by_format('admin/disputes/index', 'disputes') end # GET /admin/disputes/1 diff --git a/app/controllers/admin/domain_versions_controller.rb b/app/controllers/admin/domain_versions_controller.rb index e2224f84e..511da6a0b 100644 --- a/app/controllers/admin/domain_versions_controller.rb +++ b/app/controllers/admin/domain_versions_controller.rb @@ -45,7 +45,7 @@ module Admin @versions = @q.result.page(params[:page]) @versions = @versions.per(params[:results_per_page]) if params[:results_per_page].to_i.positive? - render_by_format + render_by_format('admin/domain_versions/archive', 'domain_history') end def show @@ -73,19 +73,5 @@ module Admin def create_where_string(key, value) " AND object->>'#{key}' ~* '#{value}'" end - - def render_by_format - respond_to do |format| - format.html do - render 'admin/domain_versions/archive' - end - format.csv do - raw_csv = @q.result.to_csv - send_data raw_csv, - filename: "domain_history_#{Time.zone.now.to_formatted_s(:number)}.csv", - type: "#{Mime[:csv]}; charset=utf-8" - end - end - end end end diff --git a/app/controllers/admin/domains_controller.rb b/app/controllers/admin/domains_controller.rb index 3e2d78671..5d3bd82da 100644 --- a/app/controllers/admin/domains_controller.rb +++ b/app/controllers/admin/domains_controller.rb @@ -29,15 +29,7 @@ module Admin end @domains = @domains.per(params[:results_per_page]) if params[:results_per_page].to_i.positive? - respond_to do |format| - format.html do - @domains - end - format.csv do - raw_csv = @domains.to_csv - send_data raw_csv, filename: 'domains.csv', type: "#{Mime[:csv]}; charset=utf-8" - end - end + render_by_format('admin/domains/index', 'domains') end def show diff --git a/app/controllers/admin/epp_logs_controller.rb b/app/controllers/admin/epp_logs_controller.rb index 3f7975b9e..e375a859f 100644 --- a/app/controllers/admin/epp_logs_controller.rb +++ b/app/controllers/admin/epp_logs_controller.rb @@ -14,17 +14,7 @@ module Admin @count = @q.result.count @epp_logs = @epp_logs.per(params[:results_per_page]) if paginate? - respond_to do |format| - format.html do - render 'admin/epp_logs/index' - end - format.csv do - raw_csv = @q.result.to_csv - send_data raw_csv, - filename: "epp_logs_#{Time.zone.now.to_formatted_s(:number)}.csv", - type: "#{Mime[:csv]}; charset=utf-8" - end - end + render_by_format('admin/epp_logs/index', 'epp_logs') end def show @@ -43,7 +33,6 @@ module Admin params[:q][:created_at_gteq] = Date.send(default_date).strftime("%Y-%m-%d") end - end end end diff --git a/app/controllers/admin/repp_logs_controller.rb b/app/controllers/admin/repp_logs_controller.rb index f6eabafeb..b26236e77 100644 --- a/app/controllers/admin/repp_logs_controller.rb +++ b/app/controllers/admin/repp_logs_controller.rb @@ -14,17 +14,7 @@ module Admin @count = @q.result.count @repp_logs = @repp_logs.per(params[:results_per_page]) if paginate? - respond_to do |format| - format.html do - render 'admin/repp_logs/index' - end - format.csv do - raw_csv = @q.result.to_csv - send_data raw_csv, - filename: "repp_logs_#{Time.zone.now.to_formatted_s(:number)}.csv", - type: "#{Mime[:csv]}; charset=utf-8" - end - end + render_by_format('admin/repp_logs/index', 'repp_logs') end def show @@ -44,7 +34,6 @@ module Admin params[:q][:created_at_gteq] = Date.send(default_date).strftime("%Y-%m-%d") end - end end end diff --git a/app/controllers/admin/reserved_domains_controller.rb b/app/controllers/admin/reserved_domains_controller.rb index aafe334f2..430913fa1 100644 --- a/app/controllers/admin/reserved_domains_controller.rb +++ b/app/controllers/admin/reserved_domains_controller.rb @@ -10,17 +10,7 @@ module Admin @domains = @q.result.page(params[:page]) @domains = @domains.per(params[:results_per_page]) if params[:results_per_page].to_i.positive? - respond_to do |format| - format.html do - render 'admin/reserved_domains/index' - end - format.csv do - raw_csv = @q.result.to_csv - send_data raw_csv, - filename: "reserved_domains_#{Time.zone.now.to_formatted_s(:number)}.csv", - type: "#{Mime[:csv]}; charset=utf-8" - end - end + render_by_format('admin/reserved_domains/index', 'reserved_domains') end def new diff --git a/app/lib/csv_report_helper.rb b/app/lib/to_csv.rb similarity index 88% rename from app/lib/csv_report_helper.rb rename to app/lib/to_csv.rb index ac1e69623..fa9b9a66c 100644 --- a/app/lib/csv_report_helper.rb +++ b/app/lib/to_csv.rb @@ -1,4 +1,4 @@ -module CsvReportHelper +module ToCsv def to_csv CSV.generate do |csv| csv << column_names diff --git a/app/models/api_log/epp_log.rb b/app/models/api_log/epp_log.rb index 6f4fe2644..feed1ecad 100644 --- a/app/models/api_log/epp_log.rb +++ b/app/models/api_log/epp_log.rb @@ -1,5 +1,5 @@ module ApiLog class EppLog < Db - extend CsvReportHelper + extend ToCsv end end diff --git a/app/models/api_log/repp_log.rb b/app/models/api_log/repp_log.rb index f983c8c99..62dcee238 100644 --- a/app/models/api_log/repp_log.rb +++ b/app/models/api_log/repp_log.rb @@ -1,5 +1,5 @@ module ApiLog class ReppLog < Db - extend CsvReportHelper + extend ToCsv end end diff --git a/app/models/blocked_domain.rb b/app/models/blocked_domain.rb index 9804e999e..286345ea4 100644 --- a/app/models/blocked_domain.rb +++ b/app/models/blocked_domain.rb @@ -1,6 +1,6 @@ class BlockedDomain < ApplicationRecord include Versions - extend CsvReportHelper + extend ToCsv before_save :generate_data after_destroy :remove_data diff --git a/app/models/dispute.rb b/app/models/dispute.rb index ef9412cc0..cbf93566a 100644 --- a/app/models/dispute.rb +++ b/app/models/dispute.rb @@ -1,5 +1,5 @@ class Dispute < ApplicationRecord - extend CsvReportHelper + extend ToCsv include WhoisStatusPopulate validates :domain_name, :password, :starts_at, :expires_at, presence: true before_validation :fill_empty_passwords, :set_expiry_date diff --git a/app/models/domain.rb b/app/models/domain.rb index ba2fb114c..010e06cc4 100644 --- a/app/models/domain.rb +++ b/app/models/domain.rb @@ -1,5 +1,5 @@ class Domain < ApplicationRecord - extend CsvReportHelper + extend ToCsv include UserEvents include Roids include Versions # version/domain_version.rb diff --git a/app/models/reserved_domain.rb b/app/models/reserved_domain.rb index ea8eab318..97fe84b72 100644 --- a/app/models/reserved_domain.rb +++ b/app/models/reserved_domain.rb @@ -1,5 +1,5 @@ class ReservedDomain < ApplicationRecord - extend CsvReportHelper + extend ToCsv include Versions # version/reserved_domain_version.rb include WhoisStatusPopulate before_save :fill_empty_passwords diff --git a/app/models/version/contact_version.rb b/app/models/version/contact_version.rb index 279566287..95bd4b677 100644 --- a/app/models/version/contact_version.rb +++ b/app/models/version/contact_version.rb @@ -1,5 +1,5 @@ class Version::ContactVersion < PaperTrail::Version - extend CsvReportHelper + extend ToCsv include VersionSession self.table_name = :log_contacts diff --git a/app/models/version/domain_version.rb b/app/models/version/domain_version.rb index a9784f325..2c6848d4b 100644 --- a/app/models/version/domain_version.rb +++ b/app/models/version/domain_version.rb @@ -1,5 +1,5 @@ class Version::DomainVersion < PaperTrail::Version - extend CsvReportHelper + extend ToCsv include VersionSession self.table_name = :log_domains