Files
gym/src/services/authService.ts
2026-04-28 17:22:50 +03:30

50 lines
1.5 KiB
TypeScript

import { api } from './api';
import { normalizeMobileNumber, normalizeVerificationCode } from '../lib/utils';
export const authService = {
sendOtp: async (mobileNumber: string) => {
const normalizedMobile = normalizeMobileNumber(mobileNumber);
const response = await api.post('/api/v1/accounts/send-otp-sms', {
mobile: {
number: normalizedMobile,
countryCode: '98'
}
});
return response.data;
},
login: async (mobileNumber: string, code: string) => {
const normalizedMobile = normalizeMobileNumber(mobileNumber);
const normalizedCode = normalizeVerificationCode(code);
const response = await api.post('/api/v1/accounts/register-and-login-by-mobile', {
mobile: {
number: normalizedMobile,
countryCode: '98'
},
verificationCode: normalizedCode
});
if (response.data.isSuccess) {
const { accessToken, refreshToken } = response.data.value;
localStorage.setItem('accessToken', accessToken);
localStorage.setItem('refreshToken', refreshToken);
}
return response.data;
},
logout: async () => {
const refreshToken = localStorage.getItem('refreshToken');
if (refreshToken) {
await api.post('/api/v1/accounts/logout', { refreshToken });
}
localStorage.removeItem('accessToken');
localStorage.removeItem('refreshToken');
},
getMe: async () => {
const response = await api.get('/api/v1/users/me');
return response.data;
}
};