dish2
Version:
Dish2 is a command line tool for DHIS 2 Web API interaction
51 lines (41 loc) • 1.33 kB
JavaScript
const csvtojson = require('csvtojson');
const urlsync = require('urllib-sync');
const fs = require('fs');
const conf = require('./configManager.js');
const app = {
delBaseUrl: conf.getConf().dhis.baseurl + '/api/' + conf.getArgs()['object-type'],
deleteCount: 0,
errorCount: 0
}
app.removeObjects = function(objects) {
var obj, url, delResp;
for (var i = 0; i<objects.length; i++) {
obj = objects[i];
url = app.delBaseUrl + '/' + obj.id;
delResp = urlsync.request(url, conf.getOptions().delete);
if (delResp && conf.is2xx(delResp.status)) {
console.log('Object successfully deleted: ' + obj.id);
app.deleteCount++;
}
else {
console.log('Object could not be deleted: ' + obj.id);
console.log('Status code: ' + delResp.status)
app.errorCount++;
}
}
console.log('Process completed!');
console.log('Objects deleted: ' + app.deleteCount);
console.log('Total no of objects: ' + objects.length);
console.log('Errors occured: ' + app.errorCount);
}
/**
* Runs command.
*/
app.run = function() {
if (!conf.isArg('file') || !conf.isArg('object-type')) {
return console.log('Usage: remove_objects --file <name-of-input-csv-file> --object-type <object-type-name>');
}
conf.convertCsvToJson(app.removeObjects);
}
app.run();