Script to extract module/config specific data
var fs = require('fs')
var _ = require('lodash');
var config_data_path = "<YourPath-to-local-config-data>";
var modules_path = config_data_path + "/v1/clients/tata_aia/modules"
function create_moduele(module) {
try {
// fs.mkdirSync(`./openApi/${payloadType}`);
} catch (err) {
console.log(`Folder "${payloadType}" already exists`);
}
}
function writeDataToFile(payload) {
fs.writeFileSync(`./openApi/${payloadName}.yml`, res)
}
function getDataFromFile(path) {
try {
return JSON.parse(fs.readFileSync(path, 'utf8'));
} catch(err){
return null;
}
}
function getListOfFilesInDirectory(path) {
return fs.readdirSync(path, 'utf8');
}
function get_modules_list() {
var leads_modules = [];
getListOfFilesInDirectory(`${modules_path}`).forEach(module_code => {
let moduleDetails = getDataFromFile(`${modules_path}/${module_code}/__data`);
if (moduleDetails?.type === 'LEAD') {
leads_modules.push({code: module_code, name: moduleDetails.name});
}
if (moduleDetails?.type === 'PARTNER') {
leads_modules.push({code: module_code, name: moduleDetails.name});
}
})
return leads_modules
}
var leads_modules = get_modules_list()
var stateNameToCodeMapping = []
leads_modules.forEach(module => {
let state_codes = getListOfFilesInDirectory(`${modules_path}/${module.code}/states`)
let state_mappings = getDataFromFile(`${modules_path}/${module.code}/stateMappings/__data`);
let leadModuleType = getDataFromFile(`${modules_path}/${module.code}/__data`)
let enabled_states = state_codes.filter(state => {
let state_data = _.find(state_mappings, state_mapping => state_mapping.state === state)
return !state_data?.disabled;
})
// stateNameToCodeMapping[module.name] = []
enabled_states.forEach(state => {
let state_name = getDataFromFile(`${modules_path}/${module.code}/states/${state}/__data`).name;
stateNameToCodeMapping.push({
module :module.name,
moduleCode :module.code,
module_type: leadModuleType.type,
state_name: state_name,
state_code: state
})
})
})
console.log(JSON.stringify(stateNameToCodeMapping))
no comments