diff --git a/app/connectors/importer.rb b/app/connectors/importer.rb index a2d81d28140c..7627eedbe07e 100644 --- a/app/connectors/importer.rb +++ b/app/connectors/importer.rb @@ -19,7 +19,7 @@ def initialize(runner, table_registrar, quota_checker, database, def run(tracker) runner.run(&tracker) - if table_quota_exceeded? + if quota_checker.will_be_over_table_quota?(results.length) drop(results) else results.select(&:success?).each { |result| register(result) } @@ -34,7 +34,7 @@ def register(result) end def success? - !table_quota_exceeded? && runner.success? + !quota_checker.over_table_quota? && runner.success? end def drop_all(results) @@ -68,10 +68,6 @@ def rename(current_name, new_name, rename_attempts=0) retry unless rename_attempts > 1 end - def table_quota_exceeded? - quota_checker.over_table_quota?(results.length) - end - def persist_metadata(name, data_import_id) table_registrar.register(name, data_import_id) self.table = table_registrar.table @@ -83,7 +79,7 @@ def results end def error_code - return 8002 if table_quota_exceeded? + return 8002 if quota_checker.over_table_quota? results.map(&:error_code).compact.first end #errors_from diff --git a/app/models/quota_checker.rb b/app/models/quota_checker.rb index b6718f1fb643..597388b43cfa 100644 --- a/app/models/quota_checker.rb +++ b/app/models/quota_checker.rb @@ -6,11 +6,16 @@ def initialize(user) @user = user end - def over_table_quota?(number_of_new_tables) + def will_be_over_table_quota?(number_of_new_tables) return false unless user.remaining_table_quota number_of_new_tables.to_i > user.remaining_table_quota.to_i end + def over_table_quota? + return false unless user.remaining_table_quota + user.tables.count > user.table_quota.to_i + end + private attr_reader :user