2026-05-16 19:19:34 -04:00
|
|
|
import apiClient from './client';
|
|
|
|
|
|
|
|
|
|
export interface AuthUser {
|
|
|
|
|
id: string;
|
|
|
|
|
email: string;
|
|
|
|
|
displayName: string;
|
|
|
|
|
role: 'Dispatcher' | 'Admin' | 'SysAdmin';
|
|
|
|
|
token: string;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export interface UserProfile {
|
|
|
|
|
id: string;
|
|
|
|
|
email: string;
|
|
|
|
|
displayName: string;
|
|
|
|
|
role: 'Dispatcher' | 'Admin' | 'SysAdmin';
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export const authApi = {
|
|
|
|
|
exchangeCode: async (code: string, redirectUri: string): Promise<AuthUser> => {
|
|
|
|
|
const res = await apiClient.post('/auth/callback', { code, redirectUri });
|
|
|
|
|
return res.data;
|
|
|
|
|
},
|
|
|
|
|
|
2026-05-16 22:10:52 -04:00
|
|
|
devLogin: async (email: string, displayName: string, role: string): Promise<AuthUser> => {
|
|
|
|
|
const res = await apiClient.post('/auth/dev-login', { email, displayName, role });
|
|
|
|
|
return res.data;
|
|
|
|
|
},
|
|
|
|
|
|
2026-05-16 19:19:34 -04:00
|
|
|
getMe: async (): Promise<UserProfile> => {
|
|
|
|
|
const res = await apiClient.get('/users/me');
|
|
|
|
|
return res.data;
|
|
|
|
|
},
|
|
|
|
|
};
|