import { api } from './client'; export interface CurrentUser { email: string; displayName: string; roles: string[]; } export async function login(email: string, password: string): Promise { const { data } = await api.post('/auth/login', { email, password }); return data; } export async function logout(): Promise { await api.post('/auth/logout'); } export async function fetchCurrentUser(): Promise { try { const { data } = await api.get('/auth/me'); return data; } catch (err: unknown) { if (axiosStatus(err) === 401) return null; throw err; } } export async function updateMyProfile(displayName: string): Promise { const { data } = await api.put('/auth/me', { displayName }); return data; } export async function changeMyPassword(currentPassword: string, newPassword: string): Promise { await api.post('/auth/me/change-password', { currentPassword, newPassword }); } function axiosStatus(err: unknown): number | undefined { if (typeof err === 'object' && err !== null && 'response' in err) { const resp = (err as { response?: { status?: number } }).response; return resp?.status; } return undefined; }