@@ -32,14 +32,30 @@ class GlpiRestClient {
3232 config . appToken = appToken
3333 }
3434
35- _makeRequest ( myRequest , responseHandler ) {
35+ _makeRequest ( myRequest , funct , responseHandler ) {
3636 fetch ( myRequest )
3737 . then ( ( resp ) => {
38- if ( resp . headers . get ( 'Content-Type' ) . indexOf ( "application/json" ) >= 0 ) {
39- responseHandler ( resp . json ( ) )
40- } else {
41- responseHandler ( resp . text ( ) )
38+
39+ switch ( funct ) {
40+
41+ case 'initSessionByCredentials' :
42+ case 'initSessionByUserToken' :
43+ responseHandler ( resp . json ( ) )
44+ break
45+
46+ case 'killSession' :
47+ if ( resp . ok ) {
48+ responseHandler ( resp . text ( ) )
49+ } else {
50+ responseHandler ( resp . json ( ) )
51+ }
52+ break
53+
54+ default :
55+ responseHandler ( resp . text ( ) )
56+ break
4257 }
58+
4359 } )
4460 . catch ( ( err ) => {
4561 responseHandler ( err )
@@ -54,11 +70,15 @@ class GlpiRestClient {
5470 userName,
5571 userPassword
5672 }
57- this . _makeRequest ( prepareRequest ( data ) , ( response ) => {
58- if ( response . session_token ) {
59- config . sessionToken = response . session_token
60- }
61- resolve ( response )
73+ this . _makeRequest ( prepareRequest ( data ) , 'initSessionByCredentials' , ( promise ) => {
74+ promise . then ( response => {
75+ console . log ( 'response' )
76+ console . log ( response )
77+ if ( response . session_token ) {
78+ config . sessionToken = response . session_token
79+ }
80+ resolve ( response )
81+ } )
6282 } )
6383 }
6484 catch ( err ) {
@@ -74,11 +94,32 @@ class GlpiRestClient {
7494 function : 'initSessionByUserToken' ,
7595 userToken
7696 }
77- this . _makeRequest ( prepareRequest ( data ) , ( response ) => {
78- if ( response . session_token ) {
79- config . sessionToken = response . session_token
80- }
81- resolve ( response )
97+ this . _makeRequest ( prepareRequest ( data ) , 'initSessionByUserToken' , ( promise ) => {
98+ promise . then ( response => {
99+ if ( response . session_token ) {
100+ config . sessionToken = response . session_token
101+ }
102+ resolve ( response )
103+ } )
104+ } )
105+ }
106+ catch ( err ) {
107+ reject ( err )
108+ }
109+ } )
110+ }
111+
112+ killSession ( ) {
113+ return new Promise ( ( resolve , reject ) => {
114+ try {
115+ const data = {
116+ function : 'killSession'
117+ }
118+ this . _makeRequest ( prepareRequest ( data ) , 'killSession' , ( promise ) => {
119+ promise . then ( response => {
120+ config . sessionToken = ''
121+ resolve ( response )
122+ } )
82123 } )
83124 }
84125 catch ( err ) {
0 commit comments