devices/page.tsx
All checks were successful
Deploy Frontend / deploy (push) Successful in 24s

 Added try-catch block around the API call
 Proper error logging and meaningful error messages
users/page.tsx
 Removed unused cookies() import and call (it was already being called inside requireAuthOrRedirect())
 Added try-catch block around the API call
 Proper error logging and meaningful error messages
This commit is contained in:
Bailey Taylor
2025-10-10 08:18:56 +08:00
parent 4e73ccb60b
commit 12c9e75743
2 changed files with 26 additions and 21 deletions

View File

@@ -16,13 +16,18 @@ interface DeviceDTO {
export default async function DeviceManagementPage() {
const user = await requireAuthOrRedirect();
const res = await axiosServer.get('/admin/devices', {
headers: {
Authorization: `Bearer ${user.token}`,
},
});
try {
const res = await axiosServer.get('/admin/devices', {
headers: {
Authorization: `Bearer ${user.token}`,
},
});
const devices: DeviceDTO[] = res.data;
const devices: DeviceDTO[] = res.data;
return <DeviceTableSection initialDevices={devices} />;
return <DeviceTableSection initialDevices={devices} />;
} catch (error) {
console.error('Failed to fetch devices:', error);
throw new Error(`Failed to load devices: ${error instanceof Error ? error.message : 'Unknown error'}`);
}
}

View File

@@ -1,5 +1,4 @@
// src/app/admin/users/page.tsx
import { cookies } from 'next/headers';
import { requireAuthOrRedirect } from '@/lib/authServer';
import axiosServer from '@/lib/axiosServer';
import UserTableSection from '@/components/admin/UserTableSection';
@@ -19,18 +18,19 @@ interface UserDTO {
export default async function UserManagementPage() {
const user = await requireAuthOrRedirect();
const cookieStore = cookies();
// @ts-expect-error - cookies() is not actually async, type is misleading
const token = cookieStore.get('authToken')?.value;
const res = await axiosServer.get('/admin/users', {
headers: {
Authorization: `Bearer ${user.token}`, // token is guaranteed to exist
},
});
const users: UserDTO[] = res.data;
return <UserTableSection initialUsers={users} />;
try {
const res = await axiosServer.get('/admin/users', {
headers: {
Authorization: `Bearer ${user.token}`,
},
});
const users: UserDTO[] = res.data;
return <UserTableSection initialUsers={users} />;
} catch (error) {
console.error('Failed to fetch users:', error);
throw new Error(`Failed to load users: ${error instanceof Error ? error.message : 'Unknown error'}`);
}
}