Arie/serveme

View on GitHub
app/workers/private_server_cleanup_worker.rb

Summary

Maintainability
A
0 mins
Test Coverage
# frozen_string_literal: true

class PrivateServerCleanupWorker
  include Sidekiq::Worker

  def perform
    expired_private_servers.destroy_all
  end

  def expired_private_servers
    GroupServer.where(group: expired_private_groups)
  end

  def expired_private_groups
    Group.where(id: expired_private_group_ids)
  end

  def expired_private_group_ids
    GroupUser
      .joins(:group)
      .where('group_users.expires_at < ? AND group_users.expires_at > ?', Time.current, 2.days.ago)
      .where('groups.name != ?', 'Donators')
      .pluck(:group_id)
  end
end