about summary refs log tree commit diff
path: root/app/models/instance.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/instance.rb')
-rw-r--r--app/models/instance.rb36
1 files changed, 16 insertions, 20 deletions
diff --git a/app/models/instance.rb b/app/models/instance.rb
index 8949be054..36110ee40 100644
--- a/app/models/instance.rb
+++ b/app/models/instance.rb
@@ -32,35 +32,31 @@ class Instance < ApplicationRecord
     @delivery_failure_tracker ||= DeliveryFailureTracker.new(domain)
   end
 
-  def following_count
-    @following_count ||= Follow.where(account: accounts).count
+  def purgeable?
+    unavailable? || domain_block&.suspend?
   end
 
-  def followers_count
-    @followers_count ||= Follow.where(target_account: accounts).count
+  def unavailable?
+    unavailable_domain.present?
   end
 
-  def reports_count
-    @reports_count ||= Report.where(target_account: accounts).count
+  def failing?
+    failure_days.present? || unavailable?
   end
 
-  def blocks_count
-    @blocks_count ||= Block.where(target_account: accounts).count
-  end
-
-  def public_comment
-    domain_block&.public_comment
+  def to_param
+    domain
   end
 
-  def private_comment
-    domain_block&.private_comment
-  end
+  delegate :exhausted_deliveries_days, to: :delivery_failure_tracker
 
-  def media_storage
-    @media_storage ||= MediaAttachment.where(account: accounts).sum(:file_file_size)
-  end
+  def availability_over_days(num_days, end_date = Time.now.utc.to_date)
+    failures_map    = exhausted_deliveries_days.index_with { true }
+    period_end_at   = exhausted_deliveries_days.last || end_date
+    period_start_at = period_end_at - num_days.days
 
-  def to_param
-    domain
+    (period_start_at..period_end_at).map do |date|
+      [date, failures_map[date]]
+    end
   end
 end