Revize 8370b6c1
Přidáno uživatelem Václav Honzík před téměř 3 roky(ů)
frontend/src/features/Auth/userThunks.ts | ||
---|---|---|
2 | 2 |
import axiosInstance from '../../api/api' |
3 | 3 |
import { UserDto } from '../../swagger/data-contracts' |
4 | 4 |
|
5 |
export interface RegisterUser { |
|
6 |
username: string |
|
7 |
email: string |
|
8 |
password: string |
|
9 |
passwordRepeat: string |
|
10 |
} |
|
11 |
export const registerUser = createAsyncThunk( |
|
12 |
'users/register', |
|
13 |
async (registerUser: UserDto) => { |
|
5 |
const loginError = |
|
6 |
'Server error occurred while logging in. Please contact help service to resolve this issue or try again later.' |
|
7 |
|
|
8 |
|
|
9 |
export const logIn = createAsyncThunk( |
|
10 |
'user/login', |
|
11 |
async (userDto: UserDto, { dispatch, getState }) => { |
|
14 | 12 |
try { |
15 |
const { data } = await axiosInstance.post( |
|
16 |
'/users/register', |
|
17 |
registerUser |
|
18 |
) |
|
19 |
} catch (error: any) { |
|
13 |
// @ts-ignore |
|
14 |
// TODO fix |
|
15 |
if (getState().user.isLoggedIn) { |
|
16 |
return |
|
17 |
} |
|
18 |
console.log('Dispatching login thunk') // TODO remove |
|
19 |
const { data, status } = await axiosInstance.post('/login', userDto) |
|
20 |
const { accessToken, refreshToken } = data |
|
21 |
console.log(data) // TODO remove |
|
22 |
if (status !== 200) { |
|
23 |
// TODO read API err |
|
24 |
dispatch({ type: 'user/setErr', payload: loginError }) |
|
25 |
return |
|
26 |
} |
|
20 | 27 |
|
28 |
dispatch({ type: 'user/refreshTokens', payload: { accessToken, refreshToken } }) |
|
29 |
} catch (err: any) { |
|
30 |
dispatch({ type: 'user/setErr', payload: loginError }) |
|
21 | 31 |
} |
22 | 32 |
} |
23 | 33 |
) |
Také k dispozici: Unified diff
login simple form impl + slice for user state