Bladeren bron

feat: integrate admin panel route + fix API base URL

- Add /admin route to desktop app (AdminDashboard)
- Fix API_BASE to cloud server port 3000
- Fix auth login + usage endpoint paths
KirinCode 1 maand geleden
bovenliggende
commit
397e370beb
2 gewijzigde bestanden met toevoegingen van 9 en 7 verwijderingen
  1. 2 0
      packages/app/src/app.tsx
  2. 7 7
      packages/app/src/pages/admin/AdminDashboard.tsx

+ 2 - 0
packages/app/src/app.tsx

@@ -58,6 +58,7 @@ import { createSessionLineage } from "@/pages/session/session-lineage"
 
 import { SessionPage, SessionRouteErrorBoundary, TargetSessionRouteContent } from "@/pages/session"
 import { NewHome, LegacyHome } from "@/pages/home"
+import { AdminDashboard } from "@/pages/admin/AdminDashboard
 
 const NewSession = lazy(() => import("@/pages/new-session"))
 
@@ -608,6 +609,7 @@ function Routes(props: { serverScoped?: JSX.Element }) {
         <Route path="/server/:serverKey/session/:id" component={TargetSessionRoute} />
       </Show>
       <Route path="/new-session" component={DraftRoute} />
+      <Route path="/admin" component={AdminDashboard} />
     </>
   )
 }

+ 7 - 7
packages/app/src/pages/admin/AdminDashboard.tsx

@@ -1,6 +1,6 @@
 import { createSignal, createResource, onMount, For, Show } from "solid-js"
 
-const API_BASE = "http://localhost:4096/api/v1/admin"
+const API_BASE = "http://localhost:3000/api/v1"
 
 async function fetchJson(url: string, token: string) {
   const res = await fetch(url, { headers: token ? { Authorization: `Bearer ${token}` } : {} })
@@ -16,7 +16,7 @@ export function AdminDashboard() {
 
   // Login
   async function login() {
-    const res = await fetch(API_BASE.replace("/admin", "/auth/login"), {
+    const res = await fetch(API_BASE + "/auth/login", {
       method: "POST",
       headers: { "Content-Type": "application/json" },
       body: JSON.stringify({ email: email(), password: password() }),
@@ -30,16 +30,16 @@ export function AdminDashboard() {
   }
 
   // Fetch data
-  const [todayData] = createResource(loggedIn, () => fetchJson(`${API_BASE}/usage/today`, token()))
-  const [teamData] = createResource(loggedIn, () => fetchJson(`${API_BASE}/usage/team`, token()))
-  const [usersData] = createResource(loggedIn, () => fetchJson(`${API_BASE}/usage/users`, token()))
-  const [minuteData] = createResource(loggedIn, () => fetchJson(`${API_BASE}/usage/minute`, token()))
+  const [todayData] = createResource(loggedIn, () => fetchJson(`${API_BASE}/admin/usage/today`, token()))
+  const [teamData] = createResource(loggedIn, () => fetchJson(`${API_BASE}/admin/usage/team`, token()))
+  const [usersData] = createResource(loggedIn, () => fetchJson(`${API_BASE}/admin/usage/users`, token()))
+  const [minuteData] = createResource(loggedIn, () => fetchJson(`${API_BASE}/admin/usage/minute`, token()))
 
   // Refs for auto-refresh
   onMount(() => {
     const interval = setInterval(() => {
       if (loggedIn()) {
-        fetchJson(`${API_BASE}/usage/today`, token()).then(d => { /* trigger re-fetch */ })
+        fetchJson(`${API_BASE}/admin/usage/today`, token()).then(d => { /* trigger re-fetch */ })
       }
     }, 30000)
     return () => clearInterval(interval)