proposal-system/web/src/lib/api/auth.ts

34 lines
859 B
TypeScript
Raw Normal View History

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;
},
devLogin: async (email: string, displayName: string, role: string): Promise<AuthUser> => {
const res = await apiClient.post('/auth/dev-login', { email, displayName, role });
return res.data;
},
getMe: async (): Promise<UserProfile> => {
const res = await apiClient.get('/users/me');
return res.data;
},
};