@sap/dwf-generator
Version:
SAP HANA Data Warehousing Foundation - Generator
62 lines (55 loc) • 1.9 kB
JavaScript
;
const coCommon = require('./common');
function lfnGenerateGrants(ioGenerator, lsPath, iaObjects) {
let loGrantsData = {};
loGrantsData.fileName = lsPath;
loGrantsData.fileContent = {};
let laObjects = JSON.parse(coCommon.replace('objectPrivileges',
{ objects: iaObjects }));
// for synonym object privilege is required
loGrantsData.fileContent = coCommon.replace('grants', {
grantorService: ioGenerator.get('generate.hdbgrants.grantor_service.name'),
objectOwner: {
roles: [
ioGenerator.get('generate.hdbgrants.role.name')
],
object_privileges: laObjects
},
applicationUser: {
object_privileges: laObjects
}
}, true);
ioGenerator.createFile(loGrantsData);
}
function lfnGenerateSynonymConfig(ioGenerator, isPath, iaObjects) {
iaObjects = JSON.parse(JSON.stringify(iaObjects));
let loSynoCfg = {};
loSynoCfg.fileName = isPath;
loSynoCfg.fileContent = coCommon.replace('synonymconfig', {
objects: iaObjects
}, true);
ioGenerator.createFile(loSynoCfg);
}
function lfnGenerateSynonym(ioGenerator, isPath, iaObjects) {
let loSyno = {};
loSyno.fileName = isPath;
loSyno.fileContent = coCommon.replace('synonym', {
objects: iaObjects
}, true);
ioGenerator.createFile(loSyno);
}
function lfnGenerateSynonymSet(ioGenerator, ioPaths, iaObjects) {
let laObjects = JSON.parse(JSON.stringify(iaObjects));
for (var i in laObjects) {
laObjects[i].name += coCommon.synonymNameSuffix;
}
lfnGenerateGrants(ioGenerator, ioPaths.grant, iaObjects);
lfnGenerateSynonym(ioGenerator, ioPaths.synonym, laObjects);
lfnGenerateSynonymConfig(ioGenerator, ioPaths.synonymconfig, laObjects);
}
module.exports = {
generateSynonymSet: lfnGenerateSynonymSet,
generateSynonym: lfnGenerateSynonym,
generateGrants: lfnGenerateGrants,
generateSynonymConfig: lfnGenerateSynonymConfig
};