From 93fb6eff666ef902b29e6ce6f21c76663594b66a Mon Sep 17 00:00:00 2001 From: armiejean Date: Mon, 12 May 2025 21:24:27 +0800 Subject: [PATCH] fetching admins from database worked --- .../Controllers/UserManagementController.php | 70 +++++++++++++++++++ .../views/pages/user-management.blade.php | 51 +------------- .../pages/user-management/add-user.blade.php | 6 +- routes/web.php | 7 +- 4 files changed, 79 insertions(+), 55 deletions(-) create mode 100644 app/Http/Controllers/UserManagementController.php diff --git a/app/Http/Controllers/UserManagementController.php b/app/Http/Controllers/UserManagementController.php new file mode 100644 index 0000000..b6e8a7d --- /dev/null +++ b/app/Http/Controllers/UserManagementController.php @@ -0,0 +1,70 @@ +route('login')->with('error', 'Please log in to view user management.'); + } + + // Make the API call to fetch admin users + $response = Http::withHeaders([ + 'Accept' => 'application/json', + 'Authorization' => 'Bearer ' . $accessToken, + ])->get("{$this->apiBaseUrl}/cms/admin"); + + $json = $response->json(); + + Log::info('User Management API Response: ', $json); + + if ($response->successful() && isset($json['data']) && is_array($json['data'])) { + // Transform the API response into the format expected by the table component + $users = array_map(function ($admin) { + return [ + + 'username' => $admin['username'], + 'firstName' => $admin['firstname'], + 'lastName' => $admin['lastname'], + 'role' => 'Admin', // Adjust if the API provides role data + 'email' => $admin['email'], + // 'status' => $admin['is_active'] ? 'Active' : 'Inactive', + ]; + }, $json['data']); + + // Pass the transformed data to the view + return view('pages.user-management', [ + 'users' => $users, + ]); + } else { + Log::warning('No user data found or invalid API response: ', $json); + return view('pages.user-management', [ + 'users' => [], // Pass an empty array if no data + ]); + } + } catch (\Exception $e) { + Log::error('Error fetching user data: ' . $e->getMessage()); + return view('pages.user-management', [ + 'users' => [], // Pass an empty array on error + ]); + } + } +} \ No newline at end of file diff --git a/resources/views/pages/user-management.blade.php b/resources/views/pages/user-management.blade.php index d011e47..57a7608 100644 --- a/resources/views/pages/user-management.blade.php +++ b/resources/views/pages/user-management.blade.php @@ -1,3 +1,4 @@ + @extends('layouts.app') @section('page_title', 'User Management') @@ -6,7 +7,7 @@
@include('components.table-component', [ 'pageTitle' => 'User Management', - 'data' => [], + 'data' => $users, // Use the data passed from the controller 'columns' => [ ['name' => 'Username', 'key' => 'username', 'sortable' => true], ['name' => 'First Name', 'key' => 'firstName', 'sortable' => true], @@ -23,54 +24,8 @@ 'showEditModal' => true, 'showViewModal' => true ]) - - - @endsection \ No newline at end of file diff --git a/resources/views/pages/user-management/add-user.blade.php b/resources/views/pages/user-management/add-user.blade.php index b6f4856..4dca9a4 100644 --- a/resources/views/pages/user-management/add-user.blade.php +++ b/resources/views/pages/user-management/add-user.blade.php @@ -24,8 +24,10 @@
- -
+
diff --git a/routes/web.php b/routes/web.php index 632c353..616780c 100644 --- a/routes/web.php +++ b/routes/web.php @@ -3,7 +3,7 @@ use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Http; use App\Http\Controllers\AuthController; - +use App\Http\Controllers\UserManagementController; @@ -24,10 +24,7 @@ Route::get('/dashboard', function () { return view('dashboard'); }); -Route::get('/user-management', function () { - return view('pages.user-management'); -})->name('user.management'); - +Route::get('/user-management', [UserManagementController::class, 'index'])->name('user.management'); Route::get('/notification', function () { return view('pages.notification');