. */ declare(strict_types=1); namespace FireflyIII\Api\V1\Controllers\Models\Recurrence; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Exceptions\FireflyException; use FireflyIII\Repositories\Recurring\RecurringRepositoryInterface; use FireflyIII\Support\Cronjobs\RecurringCronjob; use FireflyIII\User; use Illuminate\Http\JsonResponse; use Log; /** * Class TriggerController */ class TriggerController extends Controller { private RecurringRepositoryInterface $repository; /** * RecurrenceController constructor. * * @codeCoverageIgnore */ public function __construct() { parent::__construct(); $this->middleware( function ($request, $next) { /** @var User $user */ $user = auth()->user(); /** @var RecurringRepositoryInterface repository */ $this->repository = app(RecurringRepositoryInterface::class); $this->repository->setUser($user); return $next($request); } ); } /** * @return JsonResponse * @throws FireflyException * @codeCoverageIgnore * * TODO currently unused + unreachable. */ public function trigger(): JsonResponse { /** @var RecurringCronjob $recurring */ $recurring = app(RecurringCronjob::class); try { $result = $recurring->fire(); } catch (FireflyException $e) { Log::error($e->getMessage()); throw new FireflyException('200022: Error in cron job.', 0, $e); } if (false === $result) { return response()->json([], 204); } return response()->json(); } }