@wbg-mde/repository
Version:
Managing all common method for file system CRUD operations.
76 lines (75 loc) • 3.47 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const export_master_1 = require("./export.master");
const template_service_1 = require("../shared/services/template.service");
const export_master_config_1 = require("../shared/configs/export.master.config");
const app_repo_utility_1 = require("../shared/app.repo.utility");
const js2xmlparser = require("@wbg-mde/js2xmlparser");
const _ = require('lodash');
class ExportDublinCore extends export_master_1.ExportMaster {
constructor() {
super();
this.templateService = new template_service_1.TemplateService();
}
exportResourceDescription(filePath, project, extResources, callback) {
try {
let header = project.header;
this.templateService.getTreeViewSchema('DublinCore', header.language, (response) => {
let xmlJson = this.formatMetadata(response.nodes, extResources);
let xml = js2xmlparser.parse(export_master_config_1.Export_Master_Config.xmlNodeProps.rdfRoot, xmlJson, {
cdataInvalidChars: true,
format: {
doubleQuotes: true
},
declaration: {
encoding: 'UTF-8'
}
});
app_repo_utility_1.App_Repository_Utility.writeFile(filePath, xml);
callback({
result: 'ok'
});
});
}
catch (e) {
callback({
result: 'error'
});
app_repo_utility_1.App_Repository_Utility.LogText('ExportDublinCore > exportResourceDescription > ' + e, 3);
}
}
formatMetadata(treeNodes, metadata) {
let formattedJson = {};
try {
formattedJson[export_master_config_1.Export_Master_Config.xmlNodeProps.headerAttribute] = this.getHeaderAttributes();
formattedJson[export_master_config_1.Export_Master_Config.xmlNodeProps.rdfParentNode] = new Array();
let self = this;
_.forEach(treeNodes, function (treeNode) {
if (metadata && metadata instanceof Array) {
_.forEach(metadata, function (data) {
let objDescription = {};
if (data.resDscr) {
data = data.resDscr;
}
objDescription = self.getDDIObject(treeNode, data, objDescription);
formattedJson[export_master_config_1.Export_Master_Config.xmlNodeProps.rdfParentNode].push(objDescription);
});
}
});
return formattedJson;
}
catch (e) {
app_repo_utility_1.App_Repository_Utility.LogText('ExportDublinCore > formatMetadata > ' + e, 3);
return formattedJson;
}
}
getHeaderAttributes() {
let headeAttribute = {
"xmlns:rdf": export_master_config_1.Export_Master_Config.dublinCoreHeaderAttr.xmlns_rdf,
"xmlns:dc": export_master_config_1.Export_Master_Config.dublinCoreHeaderAttr.xmlns_dc,
"xmlns:dcterms": export_master_config_1.Export_Master_Config.dublinCoreHeaderAttr.xmlns_dcterms
};
return headeAttribute;
}
}
exports.ExportDublinCore = ExportDublinCore;