UNPKG

@wbg-mde/repository

Version:

Managing all common method for file system CRUD operations.

76 lines (75 loc) 3.47 kB
"use strict"; 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;