Projekt

Obecné

Profil

Stáhnout (1.9 KB) Statistiky
| Větev: | Tag: | Revize:
1 930b05fd Schwobik
import { createAsyncThunk } from "@reduxjs/toolkit"
2 06808454 Schwobik
import { isAuthRequest, loginRequest, logoutRequest } from "../../api/authservice"
3
import { log } from "../../logging/logger"
4 930b05fd Schwobik
5
export const login = createAsyncThunk(
6
    "user/login",
7 5ed9692c Schwobik
    async (payload: { username: string, password: string }) => {
8
        try {
9 06808454 Schwobik
            log.debug("Logging in", payload)
10 5ed9692c Schwobik
            const response = await loginRequest(payload.username, payload.password)
11 06808454 Schwobik
            log.debug("Login response", response)
12 5ed9692c Schwobik
            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 930b05fd Schwobik
            }
20 5ed9692c Schwobik
        } catch (err: any) {
21
            return Promise.reject(err.response.data)
22 930b05fd Schwobik
        }
23
    }
24 0efa284e Fantič
)
25
26
export const checkAuth = createAsyncThunk(
27
    "user/isauth",
28 84b0fbc3 Fantič
    async () => {
29 0efa284e Fantič
        try {
30
            const response = await isAuthRequest()
31
            console.log(response)
32
            if (response.status === 200) {
33
                return {
34 84b0fbc3 Fantič
                    isLogged: response.data.isauth
35 0efa284e Fantič
                }
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 06808454 Schwobik
)
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 930b05fd Schwobik
)