* Enable or disable a job and persist.
(
id: string,
enabled: boolean,
)
| 439 | }; |
| 440 | } |
| 441 | |
| 442 | /** |
| 443 | * Enable or disable a job and persist. |
| 444 | */ |
| 445 | setEnabled( |
| 446 | id: string, |
| 447 | enabled: boolean, |
| 448 | ): { success: boolean; message: string } { |
| 449 | const job = this.jobs.get(id); |
| 450 | if (!job) { |
| 451 | return { success: false, message: `Job "${id}" not found.` }; |
| 452 | } |
| 453 | |
| 454 | if (!isRecurringJob(job.config)) { |
| 455 | return { |
| 456 | success: false, |
| 457 | message: `Job "${job.config.name}" does not have a schedule and cannot be enabled or disabled.`, |
| 458 | }; |
| 459 | } |
| 460 | |
| 461 | job.config.enabled = enabled; |
| 462 | |
| 463 | if (enabled && !job.task) { |
| 464 | // Create a new cron task for a previously disabled job |
| 465 | job.task = this.createCronTask(job.config); |
| 466 | } else if (enabled && job.task) { |
| 467 | job.task.start(); |
| 468 | } else if (!enabled && job.task) { |
| 469 | job.task.stop(); |
| 470 | } |
| 471 | |
| 472 | this.persistJobs(); |
| 473 | |
| 474 | return { |
| 475 | success: true, |
| 476 | message: `Job "${job.config.name}" ${enabled ? "enabled" : "disabled"}.`, |
| 477 | }; |
no test coverage detected