. */ declare(strict_types=1); namespace FireflyIII\Http\Controllers\Import; use FireflyIII\Http\Controllers\Controller; use FireflyIII\Repositories\ImportJob\ImportJobRepositoryInterface; use Illuminate\Contracts\View\Factory; use Illuminate\Http\RedirectResponse; use Illuminate\Http\Request; use Illuminate\Routing\Redirector; use Illuminate\View\View; use Log; /** * Class CallbackController * * @deprecated * @codeCoverageIgnore */ class CallbackController extends Controller { /** * Callback specifically for YNAB logins. * * @param Request $request * * @param ImportJobRepositoryInterface $repository * * @return Factory|RedirectResponse|Redirector|View */ public function ynab(Request $request, ImportJobRepositoryInterface $repository) { $code = (string) $request->get('code'); $jobKey = (string) $request->get('state'); if ('' === $code) { return view('error')->with('message', 'You Need A Budget did not reply with a valid authorization code. Firefly III cannot continue.'); } $importJob = $repository->findByKey($jobKey); if ('' === $jobKey || null === $importJob) { return view('error')->with('message', 'You Need A Budget did not reply with the correct state identifier. Firefly III cannot continue.'); } Log::debug(sprintf('Got a code from YNAB: %s', $code)); // we have a code. Make the job ready for the next step, and then redirect the user. $configuration = $repository->getConfiguration($importJob); $configuration['auth_code'] = $code; $repository->setConfiguration($importJob, $configuration); // set stage to make the import routine take the correct action: $repository->setStatus($importJob, 'ready_to_run'); $repository->setStage($importJob, 'get_access_token'); return redirect(route('import.job.status.index', [$importJob->key])); } }