-
Notifications
You must be signed in to change notification settings - Fork 10
Expand file tree
/
Copy pathapi.js
More file actions
80 lines (68 loc) · 2.51 KB
/
api.js
File metadata and controls
80 lines (68 loc) · 2.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
const _ = require('lodash');
const reApi = require('../reverse_engineering/api');
const { createLogger } = require('../reverse_engineering/helpers/loggerHelper');
const applyToInstanceHelper = require('./applyToInstanceHelper');
const {
buildEntityLevelAlterScript,
buildContainerLevelAlterScript,
doesContainerLevelAlterScriptContainDropStatements,
doesEntityLevelAlterScriptContainDropStatements,
} = require('./alterScript/alterScriptBuilder');
module.exports = {
generateScript(data, logger, callback, app) {
try {
const script = buildEntityLevelAlterScript(data, app);
callback(null, script);
} catch (error) {
logger.log('error', { message: error.message, stack: error.stack }, 'PostgreSQL Forward-Engineering Error');
callback({ message: error.message, stack: error.stack });
}
},
generateViewScript(data, logger, callback, app) {
callback(new Error('Forward-Engineering of delta model on view level is not supported'));
},
generateContainerScript(data, logger, callback, app) {
try {
const script = buildContainerLevelAlterScript(data, app);
callback(null, script);
} catch (error) {
logger.log('error', { message: error.message, stack: error.stack }, 'PostgreSQL Forward-Engineering Error');
callback({ message: error.message, stack: error.stack });
}
},
getDatabases(connectionInfo, logger, callback, app) {
logger.progress({ message: 'Find all databases' });
reApi.getDatabases(connectionInfo, logger, callback, app);
},
applyToInstance(connectionInfo, logger, callback, app) {
logger.clear();
logger.log(
'info',
_.omit(connectionInfo, 'script', 'containerData'),
'connectionInfo',
connectionInfo.hiddenKeys,
);
const postgresLogger = createLogger({
title: 'Apply to instance',
hiddenKeys: connectionInfo.hiddenKeys,
logger,
});
applyToInstanceHelper.applyToInstance(connectionInfo, postgresLogger, app).then(callback, callback);
},
testConnection(connectionInfo, logger, callback, app) {
reApi.testConnection(connectionInfo, logger, callback, app).then(callback, callback);
},
isDropInStatements(data, logger, callback, app) {
try {
if (data.level === 'container') {
const containsDropStatements = doesContainerLevelAlterScriptContainDropStatements(data, app);
callback(null, containsDropStatements);
} else {
const containsDropStatements = doesEntityLevelAlterScriptContainDropStatements(data, app);
callback(null, containsDropStatements);
}
} catch (e) {
callback({ message: e.message, stack: e.stack });
}
},
};