@wbg-mde/r-factory
Version:
Metadata editor R integration module
71 lines (70 loc) • 3.1 kB
JavaScript
;
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
Object.defineProperty(exports, "__esModule", { value: true });
const path = require("path");
const api_helper_1 = require("../shared/api-helper");
const model_1 = require("@wbg-mde/model");
const repository_1 = require("@wbg-mde/repository");
let ImportDataset = class ImportDataset {
import(filename, fileId, frequencyLimit, csvPath) {
let type = path.extname(filename);
let self = this;
return api_helper_1.APIHelper.call('import', 'post', {
freqLimit: frequencyLimit,
fileId: fileId,
type: type.slice(1),
filepath: filename
}).then(function (response) {
if (response.data && response.data.result === 'ok') {
self.writeCSV(filename, csvPath);
const variables = response.data.variables.map((datum) => {
return new model_1.Variable(datum);
});
const fileDesc = new model_1.FileDescription({
ID: fileId,
Name: path.basename(filename, type),
fileTxt: {
fileName: path.basename(filename),
dimensns: {
caseQnty: response.data.cnt,
varQnty: variables.length
},
fileType: type
}
});
return Object.assign({ result: 'ok' }, { fileDesc, variables });
}
else {
return Object.assign({ result: 'error', message: response.data.message });
}
}).catch((err) => {
return Object.assign({ result: 'error', message: err.toString() });
});
}
writeCSV(filename, csvPath) {
let type = path.extname(filename);
return api_helper_1.APIHelper.call('writeCSV', 'post', {
csvPath,
type: type.slice(1),
filepath: filename
}).then(function (response) {
if (response && response.data) {
return response.data;
}
else {
return ({ result: 'error', file: csvPath });
}
}).catch((err) => {
return Object.assign({ result: 'error', message: err.toString() });
});
}
};
ImportDataset = __decorate([
repository_1.Trace()
], ImportDataset);
exports.ImportDataset = ImportDataset;