user()->role === 'admin', 403); return view('settings.index', [ 'storedCredentials' => EtsyAppCredential::find(1) !== null, 'configured' => $etsy->configured(), 'redirectUri' => $etsy->redirectUri(), ]); } public function update(Request $request): RedirectResponse { abort_unless($request->user()->role === 'admin', 403); $credentials = EtsyAppCredential::find(1); $requireCredentials = $credentials === null ? 'required' : 'nullable'; $validated = $request->validate([ 'keystring' => [$requireCredentials, 'string', 'max:255'], 'shared_secret' => [$requireCredentials, 'string', 'max:255'], ]); $previousKeystring = $credentials?->keystring ?: config('services.etsy.keystring'); $credentials ??= new EtsyAppCredential; $credentials->id = 1; $credentials->fill(array_filter($validated, fn (?string $value): bool => filled($value))); $credentials->save(); $keystringChanged = $previousKeystring !== $credentials->keystring; if ($keystringChanged) { EtsyConnection::query()->delete(); } return redirect()->route('settings.index')->with('status', $keystringChanged ? 'Etsy credentials saved. Reconnect your shop with the new app key.' : 'Etsy credentials saved.'); } }