expectsJson(), 403, __('errors.ajax_only')); return response()->json(app(VuexyAdminService::class)->getVuexySearchData()); } /** * Actualiza los enlaces rápidos del usuario * * @param Request $request Datos de la solicitud * @return void * @throws \Illuminate\Http\Exceptions\HttpResponseException * @throws \Illuminate\Validation\ValidationException */ public function quickLinksUpdate(Request $request) { abort_if(!request()->expectsJson(), 403, __('errors.ajax_only')); $validated = $request->validate([ 'action' => 'required|in:update,remove', 'route' => 'required|string', ]); $quickLinks = Setting::where('key', 'quicklinks') ->where('user_id', Auth::user()->id) ->first(); $quickLinks = $quickLinks ? json_decode($quickLinks->value, true) : []; if ($validated['action'] === 'update') { // Verificar si ya existe if (!in_array($validated['route'], $quickLinks)) { $quickLinks[] = $validated['route']; } } elseif ($validated['action'] === 'remove') { // Eliminar la ruta si existe $quickLinks = array_filter($quickLinks, function ($route) use ($validated) { return $route !== $validated['route']; }); } app(SettingsService::class)->set('quicklinks', json_encode($quickLinks), Auth::user()->id, 'vuexy-admin'); VuexyAdminService::clearQuickLinksCache(); } }