2023-11-07 00:25:48 +08:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
class RepositoryItemDateReminderJob < ApplicationJob
|
|
|
|
queue_as :default
|
|
|
|
|
|
|
|
def perform
|
2023-12-01 22:00:30 +08:00
|
|
|
process_repository_values(RepositoryDateTimeValue, DateTime.current)
|
|
|
|
process_repository_values(RepositoryDateValue, Date.current)
|
|
|
|
end
|
|
|
|
|
|
|
|
private
|
|
|
|
|
|
|
|
def process_repository_values(model, comparison_value)
|
|
|
|
model
|
2023-11-07 00:25:48 +08:00
|
|
|
.where(notification_sent: false)
|
2023-12-01 22:00:30 +08:00
|
|
|
.where('data <= ?', comparison_value)
|
2023-11-07 00:25:48 +08:00
|
|
|
.joins(repository_cell: { repository_column: :repository })
|
|
|
|
.where(repositories: { type: 'Repository' })
|
2023-12-01 22:00:30 +08:00
|
|
|
.find_each do |value|
|
|
|
|
RepositoryItemDateNotification
|
|
|
|
.send_notifications({ "#{value.class.name.underscore}_id": value.id,
|
|
|
|
repository_row_id: value.repository_cell.repository_row_id,
|
|
|
|
repository_column_id: value.repository_cell.repository_column_id })
|
|
|
|
end
|
2023-11-07 00:25:48 +08:00
|
|
|
end
|
|
|
|
end
|