Summary Table

Categories Total Count
PII 0
URL 0
DNS 0
EKL 0
IP 0
PORT 0
VsID 0
CF 0
AI 0
VPD 0
PL 0
Other 0

File Content

const fs = require('fs');
const path = require('path');
var Client = require('node-rest-client').Client;
var request = require('request');

var client = new Client({
connection: {
ca: fs.readFileSync(
path.join('ssl-certs/va-ca-cert/', 'VA-Internal-CHAINED.crt')
)
}
});
const auth = require('../auth/auth');

// const DBGMSG = false; // log detailed debug messages
// function logdbg(msg) { DBGMSG && console.log(`Debug ${msg}`); }

// const LOGINF = true; // log interesting information messages
// function loginf(msg) { LOGINF && console.log(`Info ${msg}`); }

// const LOGERR = true; // log critical error messages
// function logerr(msg) { LOGERR && console.log(`Error: ${msg}`); }

module.exports.getResource = function (url, body) {
return new Promise(function (resolve, reject) {
auth.getAccessToken().then(access_token => {
// loginf('getResource.access_token.length=' + (access_token && access_token.length));
let access_token_utf8 = access_token.toString('utf-8');
// logdbg('getResource.access_token_utf8=' + access_token_utf8);

var args = {
headers: {
Authorization: access_token_utf8,
'Content-Type': 'application/json'
},
data: {}
};
//logdbg('args rest.js', JSON.stringify(args));
resolve(
new Promise(function (resolve, reject) {
client.get(url, args, function (responseBody, response) {
resolve({
responseBody,
response
});
});
})
);
});
});
};

module.exports.postResource = function (url, body) {
return new Promise(function (resolve, reject) {
auth.getAccessToken().then(access_token => {
let access_token_utf8 = access_token.toString('utf-8');
// logdbg('postResource.access_token_utf8=' + access_token_utf8);
var args = {
headers: {
Authorization: access_token_utf8,
'Content-Type': 'application/json'
},
data: body
};
resolve(
new Promise(function (resolve, reject) {
client.post(url, args, function (responseBody, response) {
resolve({
responseBody,
response
});
});
})
);
});
});
};

module.exports.postFiles = function (url, body) {
return new Promise(function (resolve, reject) {
auth
.getAccessToken()
.then(access_token => {
let access_token_utf8 = access_token.toString('utf-8');
// logdbg('putResource.access_token_utf8=' + access_token_utf8);

// logdbg('accesstoken', access_token);
resolve(
new Promise(function (resolve, reject) {
request.post({
url: url,
formData: body,
headers: {
Authorization: access_token_utf8,
'Content-Type': 'multipart/form-data',
'Content-Disposition': 'form-data'
},
agentOptions: {
ca: fs.readFileSync(
path.join('ssl-certs/va-ca-cert/', 'VA-Internal-CHAINED.crt')
)
}
},
function (err, response, responseBody) {
if (err) {
console.log('error in post files', err);
}
resolve({
responseBody,
response
});
}
);
// .auth(null, null, true, access_token);
})
);
})
.catch(error => {
console.log('auth error', error);
});
});
};

// module.exports.postFiles = function(url, body) {
// return new Promise(function(resolve, reject) {
// auth.getAccessToken().then(access_token => {
// var args = {
// headers: {
// Authorization: access_token.toString('utf-8'),
// 'Content-Type':
// 'multipart/form;boundary=------------------------69b2c2b9c464731d'
// },
// data: body
// };
// resolve(
// new Promise(function(resolve, reject) {
// client.post(url, args, function(responseBody, response) {
// resolve({
// responseBody,
// response
// });
// });
// })
// );
// });
// });
// };

module.exports.putResource = function (url, body) {
return new Promise(function (resolve, reject) {
auth.getAccessToken().then(access_token => {
let access_token_utf8 = access_token.toString('utf-8');
// logdbg('putResource.access_token_utf8=' + access_token_utf8);

var args = {
headers: {
Authorization: access_token_utf8,
'Content-Type': 'application/json'
// 'Cache-control': 'no-cache, no-store',
// Pragma: 'no-cache',
// Expires: 'Sat 01 Jan 2000 00:00:00 GMT'
},
data: body
};
resolve(
new Promise(function (resolve, reject) {
client.put(url, args, function (responseBody, response) {
resolve({
responseBody,
response
});
});
})
);
});
});
};
module.exports.deleteResource = function (url, body) {
return new Promise(function (resolve, reject) {
auth.getAccessToken().then(access_token => {
let access_token_utf8 = access_token.toString('utf-8');
// logdbg('deleteResource.access_token_utf8=' + access_token_utf8);

var args = {
headers: {
Authorization: access_token_utf8,
'Content-Type': 'application/json'
},
data: body
};
resolve(
new Promise(function (resolve, reject) {
client.delete(url, args, function (responseBody, response) {
resolve({
responseBody,
response
});
});
})
);
});
});
};
// For rest calls that needs to pass guid
module.exports.getResource2 = function (url, guid) {
return new Promise(function (resolve, reject) {
auth.getAccessToken().then(access_token => {
let access_token_utf8 = access_token.toString('utf-8');
// logdbg('getResource2.access_token_utf8=' + access_token_utf8);
var args = {
parameters: {
guid: guid
},
headers: {
Authorization: access_token_utf8,
'Content-Type': 'application/json'
}
};
resolve(
new Promise(function (resolve, reject) {
client.get(url, args, function (data, response) {
resolve(data);
});
})
);
});
});
};