all()); $validated = $request->validate([ 'search' => 'nullable|string|max:255', 'type' => 'nullable|string|in:event,news,all', 'page' => 'nullable|integer|min:1', 'per_page' => 'nullable|integer|min:1|max:100', ]); $categories = config('wp_categories.map.' . ($validated['type'] ?? 'all')); // dd($categories); $search = $validated['search'] ?? ''; // Fetch news posts from WordPress REST API $response = \Http::get('https://official-en.aiacademy.tw/aia_wp/wp-json/wp/v2/posts', [ 'categories' => $categories, // i.g. '3,4' for 'all', '3' for 'event', '4' for 'news' 'per_page' => $validated['per_page'] ?? 10, // Default to 10 posts per page 'search' => $search, // Search query 'page' => $validated['page'] ?? 1, // Current page number ]); if ($response->successful()) { $posts = $response->json(); return response()->json([ 'events' => $posts, ]); // return Inertia::render('news', [ // 'events' => $posts, // ]); } // return response()->json(['response' => $response->json()]); return response()->json(['error' => 'Unable to fetch news'], 500); } }