@@ -11,29 +11,37 @@ function* backendSaga(): SagaIterator {
1111 const ivleToken = ( action as actionTypes . IAction ) . payload
1212 const resp = yield call ( request , 'auth' , {
1313 method : 'POST' ,
14- body : JSON . stringify ( { login : { ivle_token : ivleToken } } )
14+ body : JSON . stringify ( { login : { ivle_token : ivleToken } } ) ,
15+ headers : new Headers ( {
16+ Accept : 'application/json' ,
17+ 'Content-Type' : 'application/json'
18+ } )
1519 } )
1620 const tokens = {
17- accessToken : resp . refresh_token ,
18- refreshToken : resp . access_token
21+ accessToken : resp . access_token ,
22+ refreshToken : resp . refresh_token
1923 }
20- const username = yield call ( ( ) => 'IVLE USER' ) // TODO: fetchUsername
24+ const username = yield getUsername ( tokens . accessToken )
2125 yield put ( actions . setTokens ( tokens ) )
2226 yield put ( actions . setUsername ( username ) )
2327 yield delay ( 2000 )
2428 yield history . push ( '/academy' )
2529 } )
2630}
2731
32+ function * getUsername ( accessToken : string ) {
33+ const resp = yield call ( request , 'user' , {
34+ method : 'GET' ,
35+ headers : new Headers ( {
36+ Authorization : `Bearer ${ accessToken } ` ,
37+ Accept : 'application/json'
38+ } )
39+ } )
40+ return resp . name
41+ }
42+
2843function request ( path : string , opts : { } ) {
29- const defaultOpts = {
30- headers : {
31- Accept : 'application/json' ,
32- 'Content-Type' : 'application/json'
33- }
34- }
35- const requestOpts = { ...defaultOpts , ...opts }
36- return fetch ( `${ BACKEND_URL } /v1/${ path } ` , requestOpts )
44+ return fetch ( `${ BACKEND_URL } /v1/${ path } ` , opts )
3745 . then ( data => data . json ( ) )
3846 . catch ( err => err )
3947}
0 commit comments