auth / client /src /api.js
Piyush1225's picture
UPDATE: UI and client assets
808332c
// Shared API utility for AdaptiveAuth React UI
const BASE = '/api/v1';
export const ENDPOINTS = {
AUTH: `${BASE}/auth`,
DEMO: `${BASE}/demo`,
ADMIN: `${BASE}/admin`,
USER: `${BASE}/user`,
RISK: `${BASE}/risk`,
INTEL: `${BASE}/session-intel`,
API: BASE,
};
export const getToken = () => localStorage.getItem('token') || '';
export const saveToken = (t) => localStorage.setItem('token', t);
export const clearToken = () => localStorage.removeItem('token');
export async function req(url, method = 'GET', body = null, auth = true) {
const headers = { 'Content-Type': 'application/json' };
if (auth) {
const t = getToken();
if (t) headers['Authorization'] = `Bearer ${t}`;
}
try {
const res = await fetch(url, {
method,
headers,
body: body != null ? JSON.stringify(body) : undefined,
});
const data = await res.json().catch(() => ({}));
return { ok: res.ok, status: res.status, data };
} catch (e) {
return { ok: false, status: 0, data: { detail: e.message } };
}
}