UNPKG

@wbg-mde/r-factory

Version:

Metadata editor R integration module

71 lines (70 loc) 3.1 kB
"use strict"; 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;