37 lines
1 KiB
TypeScript
37 lines
1 KiB
TypeScript
|
|
import { apiClient } from '@/lib/apiClient';
|
||
|
|
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 });
|
||
|
|
},
|
||
|
|
};
|