Skip to content

Commit 75168e3

Browse files
committed
feat(GlpiRestClient): create basic restclient
1 parent a16ee18 commit 75168e3

File tree

4 files changed

+88
-1
lines changed

4 files changed

+88
-1
lines changed

lib/GlpiRestClient.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/index.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import itemtype from './itemtype.json'
2+
import restclient from './restclient'
23

4+
export default restclient
35
export {
46
itemtype
57
}

src/prepareRequest.js

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
2+
3+
function prepareRequest (data) {
4+
5+
let myHeaders = new Headers()
6+
let myInit = { method: data.method }
7+
let url = `${data.url}/${data.endpoint}`
8+
9+
myHeaders.append('Content-Type', 'application/json')
10+
11+
if (data.appToken) {
12+
myHeaders.append('App-Token', data.appToken)
13+
}
14+
15+
if (data.sessionToken) {
16+
myHeaders.append('Authorization', `user_token ${data.sessionToken}`)
17+
}
18+
19+
switch (data.function) {
20+
case 'initSessionByCredentials':
21+
myHeaders.append('Authorization', `Basic ${Buffer.from(`${data.userName}:${data.userPassword}`).toString('base64')}`)
22+
break
23+
default:
24+
break
25+
}
26+
27+
myInit = {
28+
...myInit,
29+
headers: myHeaders
30+
}
31+
32+
return new Request(url, myInit)
33+
}
34+
35+
export default prepareRequest

src/restclient.js

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
import prepareRequest from './prepareRequest'
2+
3+
class GlpiRestClient {
4+
constructor (url, appToken = '') {
5+
this._url = url
6+
this._sessionToken = ''
7+
this._appToken = appToken
8+
}
9+
10+
get url () {
11+
return this._url
12+
}
13+
14+
set url (url) {
15+
this._url = url
16+
}
17+
18+
get sessionToken () {
19+
return this._sessionToken
20+
}
21+
22+
set sessionToken (sessionToken) {
23+
if (sessionToken) this._sessionToken = sessionToken
24+
}
25+
26+
get appToken () {
27+
return this._appToken
28+
}
29+
30+
set appToken (appToken) {
31+
if (appToken) this._appToken = appToken
32+
}
33+
34+
_makeRequest (myRequest, responseHandler) {
35+
fetch (myRequest)
36+
.then((resp) => {
37+
if (resp.headers.get('Content-Type').indexOf("application/json") >= 0) {
38+
responseHandler(resp.json())
39+
} else {
40+
responseHandler(resp.text())
41+
}
42+
})
43+
.catch((err) => {
44+
responseHandler(err)
45+
})
46+
}
47+
48+
}
49+
50+
export default GlpiRestClient

0 commit comments

Comments
 (0)