16
16
17
17
import { createAsyncThunk } from "@reduxjs/toolkit" ;
18
18
import { AppState } from "../../store" ;
19
- import api from "../../common/api" ;
20
- import { ErrorResponseHandler } from "../../common/types" ;
21
19
import { setErrorSnackMessage , userLogged } from "../../systemSlice" ;
22
- import { ILoginDetails } from "./types" ;
23
20
import { setNavigateTo } from "./loginSlice" ;
24
- import { getTargetPath , LoginStrategyPayload } from "./LoginPage" ;
21
+ import { getTargetPath } from "./Login" ;
22
+ import { api } from "api" ;
23
+ import {
24
+ CheckVersionResponse ,
25
+ Error ,
26
+ HttpResponse ,
27
+ LoginDetails ,
28
+ LoginRequest ,
29
+ } from "api/consoleApi" ;
30
+ import { errorToHandler } from "api/errors" ;
25
31
26
32
export const doLoginAsync = createAsyncThunk (
27
33
"login/doLoginAsync" ,
@@ -32,63 +38,65 @@ export const doLoginAsync = createAsyncThunk(
32
38
const sts = state . login . sts ;
33
39
const useSTS = state . login . useSTS ;
34
40
35
- let loginStrategyPayload : LoginStrategyPayload = {
41
+ let payload : LoginRequest = {
36
42
accessKey,
37
43
secretKey,
38
44
} ;
39
45
if ( useSTS ) {
40
- loginStrategyPayload = {
46
+ payload = {
41
47
accessKey,
42
48
secretKey,
43
49
sts,
44
50
} ;
45
51
}
46
52
47
- return api
48
- . invoke ( "POST" , "/api/v1/ login" , loginStrategyPayload )
49
- . then ( ( res ) => {
53
+ return api . login
54
+ . login ( payload )
55
+ . then ( ( res : HttpResponse < void , Error > ) => {
50
56
// We set the state in redux
51
57
dispatch ( userLogged ( true ) ) ;
52
58
localStorage . setItem ( "userLoggedIn" , accessKey ) ;
53
59
dispatch ( setNavigateTo ( getTargetPath ( ) ) ) ;
54
60
} )
55
- . catch ( ( err ) => {
56
- dispatch ( setErrorSnackMessage ( err ) ) ;
61
+ . catch ( async ( res : HttpResponse < void , Error > ) => {
62
+ const err = ( await res . json ( ) ) as Error ;
63
+ dispatch ( setErrorSnackMessage ( errorToHandler ( err ) ) ) ;
64
+ return rejectWithValue ( false ) ;
57
65
} ) ;
58
66
}
59
67
) ;
60
68
export const getFetchConfigurationAsync = createAsyncThunk (
61
69
"login/getFetchConfigurationAsync" ,
62
- async ( _ , { getState, rejectWithValue, dispatch } ) => {
63
- return api
64
- . invoke ( "GET" , "/api/v1/login" )
65
- . then ( ( loginDetails : ILoginDetails ) => {
66
- return loginDetails ;
70
+ async ( _ , { dispatch, rejectWithValue } ) => {
71
+ return api . login
72
+ . loginDetail ( )
73
+ . then ( ( res : HttpResponse < LoginDetails , Error > ) => {
74
+ if ( res . data ) {
75
+ return res . data ;
76
+ }
67
77
} )
68
- . catch ( ( err : ErrorResponseHandler ) => {
69
- dispatch ( setErrorSnackMessage ( err ) ) ;
78
+ . catch ( async ( res : HttpResponse < LoginDetails , Error > ) => {
79
+ const err = ( await res . json ( ) ) as Error ;
80
+ dispatch ( setErrorSnackMessage ( errorToHandler ( err ) ) ) ;
81
+ return rejectWithValue ( false ) ;
70
82
} ) ;
71
83
}
72
84
) ;
73
85
74
86
export const getVersionAsync = createAsyncThunk (
75
87
"login/getVersionAsync" ,
76
88
async ( _ , { getState, rejectWithValue, dispatch } ) => {
77
- return api
78
- . invoke ( "GET" , "/api/v1/check-version" )
79
- . then (
80
- ( {
81
- current_version,
82
- latest_version,
83
- } : {
84
- current_version : string ;
85
- latest_version : string ;
86
- } ) => {
87
- return latest_version ;
89
+ return api . checkVersion
90
+ . checkMinIoVersion ( )
91
+ . then ( ( res : HttpResponse < CheckVersionResponse , Error > ) => {
92
+ if ( res . data !== undefined ) {
93
+ return res . data . latest_version ;
88
94
}
89
- )
90
- . catch ( ( err : ErrorResponseHandler ) => {
91
- return err . errorMessage ;
95
+ } )
96
+ . catch ( async ( res : HttpResponse < CheckVersionResponse , Error > ) => {
97
+ const err = ( await res . json ( ) ) as Error ;
98
+ dispatch ( setErrorSnackMessage ( errorToHandler ( err ) ) ) ;
99
+ return rejectWithValue ( false ) ;
92
100
} ) ;
93
101
}
94
102
) ;
0 commit comments