UNPKG

@wbg-mde/r-factory

Version:

Metadata editor R integration module

66 lines (65 loc) 2.93 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const path = require("path"); const fs = require("fs"); const R = require("@wbg-mde/r-script"); const import_config_1 = require("../modules/import/import-config"); const config_1 = require("./config"); const base_key_1 = require("../modules/validation/base-key"); var _ = require('lodash'); class BaseKeyValidation { constructor() { this.datasetname = 'HND_2012_L2L_missing.dta'; this.fileId = 'F1'; this.keyVariables = ["hhid"]; this.libraryPath = ''; this.memoryLimit = 36000; this.basekey = null; this.basekey = new base_key_1.BaseKey(); } execute(callback) { try { let datafile = path.join(config_1.TestConfig.inputPath.dataset, this.datasetname); let inputJson = path.join(config_1.TestConfig.inputPath.json, this.fileId + '.json'); let inputCSV = path.join(config_1.TestConfig.inputPath.csv, this.fileId + '.csv'); let paramJson = path.join(config_1.TestConfig.inputPath.finaljson, this.fileId + '.json'); let outJsonFile = path.join(config_1.TestConfig.outputPath.json, this.fileId + '.json'); R(config_1.TestConfig.scriptPath.import).data(datafile, path.extname(this.datasetname).slice(1), this.fileId, inputJson, import_config_1.ImportConfig.frequencyCalcLimit, this.libraryPath, this.memoryLimit, config_1.TestConfig.scriptPath.workingDirectory).call((err, rowCount) => { if (err) { callback({ result: 'error' }); console.log('import file R script execution error - file( ' + this.datasetname + ' ):' + err.toString()); } else { } }); } catch (e) { console.log('execute error >> ' + e); callback({ result: 'error' }); } } ; validate(callback) { try { let datasetsFile = path.join(config_1.TestConfig.inputPath.root, 'datasets.json'); let variablesFile = path.join(config_1.TestConfig.inputPath.root, 'variables.json'); let datasets = JSON.parse(fs.readFileSync(datasetsFile).toString()); let variables = JSON.parse(fs.readFileSync(variablesFile).toString()); this.basekey.validateRelations(datasets, variables, (resp) => { if (resp.valid) { } else { console.log(resp); } }); this.basekey.validateRelations(datasets, variables, (resp) => { callback(resp); }); } catch (e) { console.log('execute error >> ' + e); callback({ result: 'error' }); } } } exports.BaseKeyValidation = BaseKeyValidation;