-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathalterNameHelper.js
More file actions
39 lines (32 loc) · 1.02 KB
/
alterNameHelper.js
File metadata and controls
39 lines (32 loc) · 1.02 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
const { AlterScriptDto } = require('../../types/AlterScriptDto');
const { getSchemaOfAlterCollection } = require('../../../utils/general');
const { createView, dropView } = require('./createDropViewHelper');
/**
* @param {Object} view
* @param {Object} ddlProvider
* @param {Function} mapProperties
* @return {AlterScriptDto | undefined}
*/
const getRenameViewScriptDtos = (view, ddlProvider, mapProperties) => {
const viewSchema = getSchemaOfAlterCollection(view);
const viewName = viewSchema?.compMod?.name;
if (!viewName) {
return [undefined];
}
const { old: oldName, new: newName } = viewName;
if (!newName || newName === oldName) {
return [undefined];
}
const dropScript = dropView({
ddlProvider,
viewSchema: { ...viewSchema, code: oldName, name: oldName },
});
const createScript = createView({ ddlProvider, mapProperties, view });
return [
AlterScriptDto.getInstance([dropScript], true, true),
AlterScriptDto.getInstance([createScript], true, false),
];
};
module.exports = {
getRenameViewScriptDtos,
};