veza/apps/web/src/features/auth/api/authApi.ts

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 });
},
};