Rely on built-in query methods for timestamp presence checks

This commit is contained in:
Matt Jankowski 2025-07-26 11:17:45 -04:00
parent 25f1a515f8
commit 375ea60b9f
20 changed files with 23 additions and 23 deletions

View File

@ -30,7 +30,7 @@ module Admin::DashboardHelper
[account.user_current_sign_in_at, false] [account.user_current_sign_in_at, false]
elsif account.user_pending? elsif account.user_pending?
[account.user_created_at, true] [account.user_created_at, true]
elsif account.suspended_at.present? && account.local? && account.user.nil? elsif account.suspended_at? && account.local? && account.user.nil?
[account.suspended_at, true] [account.suspended_at, true]
elsif account.last_status_at.present? elsif account.last_status_at.present?
[account.last_status_at, true] [account.last_status_at, true]

View File

@ -245,7 +245,7 @@ class Account < ApplicationRecord
end end
def schedule_refresh_if_stale! def schedule_refresh_if_stale!
return unless last_webfingered_at.present? && last_webfingered_at <= BACKGROUND_REFRESH_INTERVAL.ago return unless last_webfingered_at? && last_webfingered_at <= BACKGROUND_REFRESH_INTERVAL.ago
AccountRefreshWorker.perform_in(rand(REFRESH_DEADLINE), id) AccountRefreshWorker.perform_in(rand(REFRESH_DEADLINE), id)
end end

View File

@ -47,7 +47,7 @@ class AccountWarning < ApplicationRecord
end end
def overruled? def overruled?
overruled_at.present? overruled_at?
end end
def appeal_eligible? def appeal_eligible?

View File

@ -56,7 +56,7 @@ class Announcement < ApplicationRecord
end end
def notification_sent? def notification_sent?
notification_sent_at.present? notification_sent_at?
end end
def mentions def mentions

View File

@ -40,11 +40,11 @@ class Appeal < ApplicationRecord
end end
def approved? def approved?
approved_at.present? approved_at?
end end
def rejected? def rejected?
rejected_at.present? rejected_at?
end end
def approve!(current_account) def approve!(current_account)

View File

@ -8,7 +8,7 @@ module Account::Sensitizes
end end
def sensitized? def sensitized?
sensitized_at.present? sensitized_at?
end end
def sensitize!(date = Time.now.utc) def sensitize!(date = Time.now.utc)

View File

@ -9,7 +9,7 @@ module Account::Silences
end end
def silenced? def silenced?
silenced_at.present? silenced_at?
end end
def silence!(date = Time.now.utc) def silence!(date = Time.now.utc)

View File

@ -9,7 +9,7 @@ module Account::Suspensions
end end
def suspended? def suspended?
suspended_at.present? && !instance_actor? suspended_at? && !instance_actor?
end end
alias unavailable? suspended? alias unavailable? suspended?

View File

@ -13,11 +13,11 @@ module Reviewable
end end
def reviewed? def reviewed?
reviewed_at.present? reviewed_at?
end end
def requested_review? def requested_review?
requested_review_at.present? requested_review_at?
end end
def requires_review_notification? def requires_review_notification?

View File

@ -8,7 +8,7 @@ module Status::SnapshotConcern
end end
def edited? def edited?
edited_at.present? edited_at?
end end
def build_snapshot(account_id: nil, at_time: nil, rate_limit: true) def build_snapshot(account_id: nil, at_time: nil, rate_limit: true)

View File

@ -17,7 +17,7 @@ module User::Activity
end end
def signed_in_recently? def signed_in_recently?
current_sign_in_at.present? && current_sign_in_at >= ACTIVE_DURATION.ago current_sign_in_at? && current_sign_in_at >= ACTIVE_DURATION.ago
end end
private private

View File

@ -13,7 +13,7 @@ module User::Confirmation
end end
def confirmed? def confirmed?
confirmed_at.present? confirmed_at?
end end
def unconfirmed? def unconfirmed?

View File

@ -49,7 +49,7 @@ class FeaturedTag < ApplicationRecord
def decrement(deleted_status) def decrement(deleted_status)
if statuses_count <= 1 if statuses_count <= 1
update(statuses_count: 0, last_status_at: nil) update(statuses_count: 0, last_status_at: nil)
elsif last_status_at.present? && last_status_at > deleted_status.created_at elsif last_status_at? && last_status_at > deleted_status.created_at
update(statuses_count: statuses_count - 1) update(statuses_count: statuses_count - 1)
else else
# Fetching the latest status creation time can be expensive, so only perform it # Fetching the latest status creation time can be expensive, so only perform it

View File

@ -20,7 +20,7 @@ class GeneratedAnnualReport < ApplicationRecord
scope :pending, -> { where(viewed_at: nil) } scope :pending, -> { where(viewed_at: nil) }
def viewed? def viewed?
viewed_at.present? viewed_at?
end end
def view! def view!

View File

@ -116,7 +116,7 @@ class Report < ApplicationRecord
end end
def action_taken? def action_taken?
action_taken_at.present? action_taken_at?
end end
alias action_taken action_taken? alias action_taken action_taken?

View File

@ -27,7 +27,7 @@ class ScheduledStatus < ApplicationRecord
private private
def validate_future_date def validate_future_date
errors.add(:scheduled_at, I18n.t('scheduled_statuses.too_soon')) if scheduled_at.present? && scheduled_at <= Time.now.utc + MINIMUM_OFFSET errors.add(:scheduled_at, I18n.t('scheduled_statuses.too_soon')) if scheduled_at? && scheduled_at <= Time.now.utc + MINIMUM_OFFSET
end end
def validate_total_limit def validate_total_limit

View File

@ -32,7 +32,7 @@ class TermsOfService < ApplicationRecord
end end
def published? def published?
published_at.present? published_at?
end end
def effective? def effective?
@ -44,7 +44,7 @@ class TermsOfService < ApplicationRecord
end end
def notification_sent? def notification_sent?
notification_sent_at.present? notification_sent_at?
end end
def base_user_scope def base_user_scope

View File

@ -147,7 +147,7 @@ class UpdateStatusService < BaseService
# If the poll had no expiration date set but now has, or now has a sooner # If the poll had no expiration date set but now has, or now has a sooner
# expiration date, schedule a notification # expiration date, schedule a notification
return unless poll.present? && poll.expires_at.present? return unless poll.present? && poll.expires_at?
PollExpirationNotifyWorker.remove_from_scheduled(poll.id) if @previous_expires_at.present? && @previous_expires_at > poll.expires_at PollExpirationNotifyWorker.remove_from_scheduled(poll.id) if @previous_expires_at.present? && @previous_expires_at > poll.expires_at
PollExpirationNotifyWorker.perform_at(poll.expires_at + 5.minutes, poll.id) PollExpirationNotifyWorker.perform_at(poll.expires_at + 5.minutes, poll.id)

View File

@ -29,7 +29,7 @@ class PollExpirationNotifyWorker
end end
def not_due_yet? def not_due_yet?
@poll.expires_at.present? && !@poll.expired? @poll.expires_at? && !@poll.expired?
end end
def requeue! def requeue!

View File

@ -305,7 +305,7 @@ module Mastodon::CLI
query = query.where(domain: domains) unless domains.empty? query = query.where(domain: domains) unless domains.empty?
processed, culled = parallelize_with_progress(query.partitioned) do |account| processed, culled = parallelize_with_progress(query.partitioned) do |account|
next if account.updated_at >= skip_threshold || (account.last_webfingered_at.present? && account.last_webfingered_at >= skip_threshold) || skip_domains.include?(account.domain) next if account.updated_at >= skip_threshold || (account.last_webfingered_at? && account.last_webfingered_at >= skip_threshold) || skip_domains.include?(account.domain)
code = 0 code = 0