42 lines
1.1 KiB
TypeScript
42 lines
1.1 KiB
TypeScript
import { apiClient } from '@/services/api/client';
|
|
import {
|
|
AuthResponse,
|
|
LoginCredentials,
|
|
RefreshResponse,
|
|
RegisterCredentials,
|
|
User,
|
|
} from '../types/index';
|
|
|
|
export const authApi = {
|
|
login: async (credentials: LoginCredentials): Promise<AuthResponse> => {
|
|
const { data } = await apiClient.post<AuthResponse>(
|
|
'/auth/login',
|
|
credentials,
|
|
);
|
|
return data;
|
|
},
|
|
|
|
register: async (payload: RegisterCredentials): Promise<AuthResponse> => {
|
|
const { data } = await apiClient.post<AuthResponse>(
|
|
'/auth/register',
|
|
payload,
|
|
);
|
|
return data;
|
|
},
|
|
|
|
getMe: async (): Promise<User> => {
|
|
const { data } = await apiClient.get<User>('/auth/me');
|
|
return data;
|
|
},
|
|
|
|
refresh: async (refreshToken: string): Promise<RefreshResponse> => {
|
|
const { data } = await apiClient.post<RefreshResponse>('/auth/refresh', {
|
|
refresh_token: refreshToken,
|
|
});
|
|
return data;
|
|
},
|
|
|
|
logout: async (refreshToken: string): Promise<void> => {
|
|
await apiClient.post('/auth/logout', { refresh_token: refreshToken });
|
|
},
|
|
};
|