15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
# File 'app/services/collavre/tools/cron_cancel_service.rb', line 15
def call(key:)
raise "Current.user is required" unless Current.user
task = SolidQueue::RecurringTask.find_by(key: key, static: false)
return { error: "Cron job not found", key: key } unless task
args = parse_arguments(task)
creative_id = args["creative_id"] || parse_creative_id_from_key(key)
creative = Creative.find_by(id: creative_id)
unless creative&.has_permission?(Current.user, :write)
return { error: "No write permission to cancel this cron job", key: key }
end
task.destroy!
{ success: true, key: key, message: "Cron job cancelled successfully" }
end
|