summaryrefslogtreecommitdiffstats
path: root/server/lib/external-backends/backends
diff options
context:
space:
mode:
Diffstat (limited to 'server/lib/external-backends/backends')
-rw-r--r--server/lib/external-backends/backends/idoit-backend.js73
1 files changed, 72 insertions, 1 deletions
diff --git a/server/lib/external-backends/backends/idoit-backend.js b/server/lib/external-backends/backends/idoit-backend.js
index 9245b58..db8ffd1 100644
--- a/server/lib/external-backends/backends/idoit-backend.js
+++ b/server/lib/external-backends/backends/idoit-backend.js
@@ -672,6 +672,77 @@ class IdoitBackend extends ExternalBackends {
return result
}
+ async getFileList (credentials, externalId) {
+ var c = this.mapCredentials(credentials)
+ var login = await this.getSession(c)
+ var sid = login.data.result['session-id']
+
+ var config = {
+ timeout: 180000,
+ headers: {
+ 'X-RPC-Auth-Session': sid,
+ 'Content-Type': 'application/json'
+ }
+ }
+ var body = {
+ 'version': '2.0',
+ 'method': 'cmdb.category.read',
+ 'params': {
+ 'objID': externalId,
+ 'category': 'C__CATG__FILE',
+ 'apikey': c.apikey,
+ 'language': 'en'
+ },
+ 'id': 1
+ }
+ let result = await axios.post(c.url, body, config)
+ return result.data.result
+ }
+
+ async getFile (credentials, externalId, filename) {
+ var c = this.mapCredentials(credentials)
+ var login = await this.getSession(c)
+ var sid = login.data.result['session-id']
+
+ var config = {
+ timeout: 180000,
+ headers: {
+ 'X-RPC-Auth-Session': sid,
+ 'Content-Type': 'application/json'
+ }
+ }
+
+ var body = {
+ 'version': '2.0',
+ 'method': 'cmdb.category.read',
+ 'params': {
+ 'objID': externalId,
+ 'category': 'C__CATG__FILE',
+ 'apikey': c.apikey,
+ 'language': 'en'
+ },
+ 'id': 1
+ }
+ let files = await axios.post(c.url, body, config)
+ let fileObjId = files.data.result.find(x => x.file.title === filename).file.id
+
+ var body = {
+ 'version': '2.0',
+ 'method': 'cmdb.category.read',
+ 'params': {
+ 'objID': fileObjId,
+ 'category': 'C__CMDB__SUBCAT__FILE_VERSIONS',
+ 'apikey': c.apikey,
+ 'language': 'en'
+ },
+ 'id': 1
+ }
+ let result = await axios.post(c.url, body, config)
+ result = result.data.result[0]
+
+ return { filename: result.file_title, value: result.file_content.value, md5: result.md5_hash }
+ }
+
async uploadFiles (credentials, externalId, files) {
var c = this.mapCredentials(credentials)
var login = await this.getSession(c)
@@ -691,7 +762,7 @@ class IdoitBackend extends ExternalBackends {
'method': 'cmdb.object.create',
'params': {
'type': 'C__OBJTYPE__FILE',
- 'title': key,
+ 'title': files[key].name,
'apikey': c.apikey,
'language': 'en'
},