Projekt

Obecné

Profil

Stáhnout (1.9 KB) Statistiky
| Větev: | Tag: | Revize:
1
import { createAsyncThunk } from "@reduxjs/toolkit"
2
import { isAuthRequest, loginRequest, logoutRequest } from "../../api/authservice"
3
import { log } from "../../logging/logger"
4

    
5
export const login = createAsyncThunk(
6
    "user/login",
7
    async (payload: { username: string, password: string }) => {
8
        try {
9
            log.debug("Logging in", payload)
10
            const response = await loginRequest(payload.username, payload.password)
11
            log.debug("Login response", response)
12
            if (response.status === 200) {
13
                return {
14
                    username: payload.username,
15
                    role: response.data.role
16
                }
17
            } else {
18
                return Promise.reject(response.data ? response.data : "Login failed")
19
            }
20
        } catch (err: any) {
21
            return Promise.reject(err.response.data)
22
        }
23
    }
24
)
25

    
26
export const checkAuth = createAsyncThunk(
27
    "user/isauth",
28
    async () => {
29
        try {
30
            const response = await isAuthRequest()
31
            console.log(response)
32
            if (response.status === 200) {
33
                return {
34
                    isLogged: response.data.isauth
35
                }
36
            } else {
37
                return Promise.reject(response.data ? response.data : "Check authentication failed")
38
            }
39
        } catch (err: any) {
40
            return Promise.reject(err.response.data)
41
        }
42
    }
43
)
44

    
45
export const logout = createAsyncThunk(
46
    "user/logout",
47
    async () => {
48
        try {
49
            const response = await logoutRequest()
50
            log.debug("Logout response", response)
51
            if (response.status === 200) {
52
                return Promise.resolve()
53
            } else {
54
                return Promise.reject(response.data ? response.data : "Logout failed")
55
            }
56
        } catch (err: any) {
57
            return Promise.reject(err.response.data)
58
        }
59
    }
60
)
(4-4/4)