. */ declare(strict_types=1); namespace FireflyIII\Support\Http\Controllers; use Carbon\Carbon; use FireflyIII\Exceptions\FireflyException; use FireflyIII\Support\Cronjobs\AutoBudgetCronjob; use FireflyIII\Support\Cronjobs\RecurringCronjob; /** * Trait CronRunner */ trait CronRunner { /** * @param bool $force * @param Carbon $date * * @return array */ protected function runAutoBudget(bool $force, Carbon $date): array { /** @var AutoBudgetCronjob $autoBudget */ $autoBudget = app(AutoBudgetCronjob::class); $autoBudget->setForce($force); $autoBudget->setDate($date); try { $autoBudget->fire(); } catch (FireflyException $e) { return [ 'job_fired' => false, 'job_succeeded' => false, 'job_errored' => true, 'message' => $e->getMessage(), ]; } return [ 'job_fired' => $autoBudget->jobFired, 'job_succeeded' => $autoBudget->jobSucceeded, 'job_errored' => $autoBudget->jobErrored, 'message' => $autoBudget->message, ]; } /** * @param bool $force * @param Carbon $date * * @return array */ protected function runRecurring(bool $force, Carbon $date): array { /** @var RecurringCronjob $recurring */ $recurring = app(RecurringCronjob::class); $recurring->setForce($force); $recurring->setDate($date); try { $recurring->fire(); } catch (FireflyException $e) { return [ 'job_fired' => false, 'job_succeeded' => false, 'job_errored' => true, 'message' => $e->getMessage(), ]; } return [ 'job_fired' => $recurring->jobFired, 'job_succeeded' => $recurring->jobSucceeded, 'job_errored' => $recurring->jobErrored, 'message' => $recurring->message, ]; } }