import type { AuthResponseData, ForgotPasswordPayload, LoginPayload, MeResponse, PermissionResponse, SetPasswordPayload, } from '@/types'; import { API_ROUTES } from '@/constants/apiRoutes'; import axiosClient, { axiosAuth } from '../axios/axios'; export const authService = { login: async (payload: LoginPayload): Promise => { const response = await axiosAuth.post( API_ROUTES.AUTH.LOGIN, payload, ); return response.data; }, refresh: async (): Promise => { const response = await axiosAuth.post( API_ROUTES.AUTH.REFRESH, {}, ); return response.data; }, logout: async (): Promise => { await axiosAuth.post(API_ROUTES.AUTH.LOGOUT, {}); }, me: async (): Promise => { const response = await axiosClient.get(API_ROUTES.AUTH.ME); return response.data; }, permissions: async (): Promise => { const response = await axiosClient.get( API_ROUTES.PERMISSIONS.MY_PERMISSIONS, ); return response.data; }, forgotPassword: async (payload: ForgotPasswordPayload): Promise => { const response = await axiosAuth.post( API_ROUTES.AUTH.FORGOT_PASSWORD, payload, ); return response.data; }, resetPassword: async (payload: SetPasswordPayload): Promise => { const response = await axiosAuth.post( API_ROUTES.AUTH.RESET_PASSWORD, payload, ); return response.data; }, setPassword: async (payload: SetPasswordPayload): Promise => { const response = await axiosAuth.post( API_ROUTES.AUTH.SET_PASSWORD, payload, ); return response.data; }, };