Skip to content

Commit f18f282

Browse files
Gianfranco97ajsb85
authored andcommitted
feat(GlpiRestClient): create function to killSession
1 parent d4df7c7 commit f18f282

File tree

2 files changed

+66
-20
lines changed

2 files changed

+66
-20
lines changed

src/prepareRequest.js

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,7 @@ function prepareRequest (data) {
1111
if (config.appToken) {
1212
myHeaders.append('App-Token', config.appToken)
1313
}
14-
15-
if (config.sessionToken) {
16-
myHeaders.append('Authorization', `user_token ${config.sessionToken}`)
17-
}
18-
14+
1915
switch (data.function) {
2016
case 'initSessionByCredentials':
2117
myHeaders.append('Authorization', `Basic ${Buffer.from(`${data.userName}:${data.userPassword}`).toString('base64')}`)
@@ -26,10 +22,19 @@ function prepareRequest (data) {
2622
url = `${url}/initSession?user_token=${data.userToken}`
2723
myInit = { method: 'GET' }
2824
break
25+
case 'killSession':
26+
myHeaders.append('Accept', 'text/html, application/xhtml+xml, application/xml;q=0.9, */*;q=0.8')
27+
url = `${url}/killSession`
28+
myInit = { method: 'GET' }
29+
break
2930
default:
3031
break
3132
}
3233

34+
if (config.sessionToken) {
35+
url = `${url}?session_token=${config.sessionToken}`
36+
}
37+
3338
myInit = {
3439
...myInit,
3540
headers: myHeaders

src/restclient.js

Lines changed: 56 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)