about summary refs log tree commit diff
path: root/app
diff options
context:
space:
mode:
authorMatt Jankowski <mjankowski@thoughtbot.com>2017-05-22 13:36:21 -0400
committerEugen Rochko <eugen@zeonfederated.com>2017-05-22 19:36:21 +0200
commitec34ec63b195d94a1ee43ac584ff74d84822222f (patch)
treef135626f8a790e78fc86a2102d58f5f433e2b080 /app
parent4a4733b397c9a5d3a69d7b2156f4f8aa62ff0c32 (diff)
Specs for cleanup workers (#3235)
* Add spec files for feed and media cleanup workers

* Add coverage for feed and media cleanup schedulers

* Clean up feed and media cleanup workers
Diffstat (limited to 'app')
-rw-r--r--app/models/media_attachment.rb1
-rw-r--r--app/models/user.rb2
-rw-r--r--app/workers/scheduler/feed_cleanup_scheduler.rb2
-rw-r--r--app/workers/scheduler/media_cleanup_scheduler.rb2
4 files changed, 5 insertions, 2 deletions
diff --git a/app/models/media_attachment.rb b/app/models/media_attachment.rb
index c29a66eb2..cf73c22b8 100644
--- a/app/models/media_attachment.rb
+++ b/app/models/media_attachment.rb
@@ -55,6 +55,7 @@ class MediaAttachment < ApplicationRecord
   validates :account, presence: true
 
   scope :attached, -> { where.not(status_id: nil) }
+  scope :unattached, -> { where(status_id: nil) }
   scope :local, -> { where(remote_url: '') }
   default_scope { order(id: :asc) }
 
diff --git a/app/models/user.rb b/app/models/user.rb
index 2ad68f9ae..d0732ed59 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -35,6 +35,7 @@
 
 class User < ApplicationRecord
   include Settings::Extend
+  ACTIVE_DURATION = 14.days
 
   devise :registerable, :recoverable,
          :rememberable, :trackable, :validatable, :confirmable,
@@ -51,6 +52,7 @@ class User < ApplicationRecord
   scope :recent,    -> { order(id: :desc) }
   scope :admins,    -> { where(admin: true) }
   scope :confirmed, -> { where.not(confirmed_at: nil) }
+  scope :inactive, -> { where(arel_table[:current_sign_in_at].lt(ACTIVE_DURATION.ago)) }
 
   before_validation :sanitize_languages
 
diff --git a/app/workers/scheduler/feed_cleanup_scheduler.rb b/app/workers/scheduler/feed_cleanup_scheduler.rb
index c7df363a4..402eed7c6 100644
--- a/app/workers/scheduler/feed_cleanup_scheduler.rb
+++ b/app/workers/scheduler/feed_cleanup_scheduler.rb
@@ -17,7 +17,7 @@ class Scheduler::FeedCleanupScheduler
   private
 
   def inactive_users
-    User.confirmed.where('current_sign_in_at < ?', 14.days.ago)
+    User.confirmed.inactive
   end
 
   def redis
diff --git a/app/workers/scheduler/media_cleanup_scheduler.rb b/app/workers/scheduler/media_cleanup_scheduler.rb
index 885ee9afc..a95f512be 100644
--- a/app/workers/scheduler/media_cleanup_scheduler.rb
+++ b/app/workers/scheduler/media_cleanup_scheduler.rb
@@ -12,6 +12,6 @@ class Scheduler::MediaCleanupScheduler
   private
 
   def unattached_media
-    MediaAttachment.reorder(nil).where(status_id: nil).where('created_at < ?', 1.day.ago)
+    MediaAttachment.reorder(nil).unattached.where('created_at < ?', 1.day.ago)
   end
 end