Skip to content

Commit e19ba14

Browse files
Gianfranco97Hector Rondon
authored andcommitted
feat(GlpiRestClient): add item
1 parent c29f923 commit e19ba14

File tree

2 files changed

+38
-8
lines changed

2 files changed

+38
-8
lines changed

src/prepareRequest.js

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,20 +13,31 @@ function prepareRequest (data) {
1313
}
1414

1515
switch (data.function) {
16+
1617
case 'initSessionByCredentials':
1718
myHeaders.append('Authorization', `Basic ${Buffer.from(`${data.userName}:${data.userPassword}`).toString('base64')}`)
1819
url = `${url}/initSession`
1920
myInit = { method: 'GET' }
2021
break
22+
2123
case 'initSessionByUserToken':
2224
url = `${url}/initSession?user_token=${data.userToken}`
2325
myInit = { method: 'GET' }
2426
break
27+
2528
case 'killSession':
26-
myHeaders.append('Accept', 'text/html, application/xhtml+xml, application/xml;q=0.9, */*;q=0.8')
2729
url = `${url}/killSession`
2830
myInit = { method: 'GET' }
2931
break
32+
33+
case 'addItem':
34+
url = `${url}/${data.itemtype.name}`
35+
myInit = {
36+
method: 'POST',
37+
body: JSON.stringify({input: data.input})
38+
}
39+
break
40+
3041
default:
3142
break
3243
}

src/restclient.js

Lines changed: 26 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import prepareRequest from './prepareRequest'
22
import config from './config'
3+
import ITEMTYPE from './itemtype.json'
34

45
class GlpiRestClient {
56
constructor (url, appToken = '') {
@@ -37,12 +38,6 @@ class GlpiRestClient {
3738
.then((resp) => {
3839

3940
switch (funct) {
40-
41-
case 'initSessionByCredentials':
42-
case 'initSessionByUserToken':
43-
responseHandler(resp.json())
44-
break
45-
4641
case 'killSession':
4742
if (resp.ok) {
4843
responseHandler(resp.text())
@@ -52,7 +47,7 @@ class GlpiRestClient {
5247
break
5348

5449
default:
55-
responseHandler(resp.text())
50+
responseHandler(resp.json())
5651
break
5752
}
5853

@@ -127,6 +122,30 @@ class GlpiRestClient {
127122
}
128123
})
129124
}
125+
126+
addItem (itemtype, input) {
127+
return new Promise((resolve, reject) => {
128+
try {
129+
if (!itemtype || itemtype !== ITEMTYPE[itemtype.name]) {
130+
reject('Invalid itemtype')
131+
} else {
132+
const data = {
133+
function: 'addItem',
134+
itemtype,
135+
input
136+
}
137+
this._makeRequest( prepareRequest(data), 'addItem', (promise) => {
138+
promise.then(response => {
139+
resolve ( response )
140+
})
141+
})
142+
}
143+
}
144+
catch (err) {
145+
reject(err)
146+
}
147+
})
148+
}
130149
}
131150

132151
export default GlpiRestClient

0 commit comments

Comments
 (0)