feat: add authService and rename userService

This commit is contained in:
Vladislav Syrochkin 2025-06-16 12:32:08 +05:00
parent d55a99aafd
commit 5def1a9bb1
3 changed files with 36 additions and 22 deletions

View File

@ -1,22 +0,0 @@
import api from '../api/api';
import { useUserStore } from '../store/user';
import { Auth } from '../types/auth';
export class AuthService {
static async login(auth: Auth) {
const token = await api.login(auth);
console.log(token);
localStorage.setItem('accessToken', token.accessToken);
}
static async logout() {
useUserStore.getState().removeUser();
localStorage.removeItem('userInfo');
localStorage.removeItem('accessToken');
}
static async refresh() {
const token = await api.refreshToken();
localStorage.setItem('accessToken', token.accessToken);
}
}

View File

@ -0,0 +1,30 @@
import api from '../api/api';
import { useAuthStore } from '../store/authStore';
import { useUserStore } from '../store/userStore';
import { Auth } from '../types/auth';
import { UserService } from './userService';
export class AuthService {
static async login(auth: Auth) {
const token = await api.login(auth);
useAuthStore.getState().setAccessToken(token.accessToken);
localStorage.setItem('refreshToken', token.refreshToken);
await UserService.getProfile().then((user) => {
useUserStore.getState().setUser(user);
});
}
static async logout() {
console.log('logout');
useUserStore.getState().setUser(null);
useAuthStore.getState().setAccessToken(null);
localStorage.removeItem('userInfo');
localStorage.removeItem('refreshToken');
}
static async refresh() {
console.log('refresh');
const token = await api.refreshToken();
useAuthStore.getState().setAccessToken(token.accessToken);
}
}

View File

@ -3,8 +3,14 @@ import { User } from '../types/user';
export class UserService {
static async getProfile(): Promise<User> {
console.log('getProfile');
const user = api.getProfile();
return user;
}
static async getUsers(page: number = 1, limit: number = 10): Promise<any> {
const users = api.getUsers(page, limit);
return users;
}
}