Projekt

Obecné

Profil

Stáhnout (2.09 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
                    userId: response.data.uuid
17
                }
18
            } else {
19
                return Promise.reject(response.data ? response.data : "Login failed")
20
            }
21
        } catch (err: any) {
22
            return Promise.reject(err.response ? err.response.data : "Something went wrong: " + err)
23
        }
24
    }
25
)
26

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

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