1df01194891ff3cdbcc5313cdbe6b08c1e269f7f
[ccsdk/cds.git] /
1 import {PackageCreationModes} from './PackageCreationModes';
2 import {CBAPackage, Definition, Scripts} from '../mapping-models/CBAPacakge.model';
3 import {FilesContent} from '../mapping-models/metadata/MetaDataTab.model';
4 import {Import, Metadata, VlbDefinition} from '../mapping-models/definitions/VlbDefinition';
5 import {PackageCreationUtils} from '../package-creation.utils';
6
7
8 export class DesignerCreationMode extends PackageCreationModes {
9
10     constructor() {
11         super();
12     }
13
14     execute(cbaPackage: CBAPackage, packageCreationUtils: PackageCreationUtils) {
15         this.addToscaMetaDataFile(cbaPackage.metaData);
16         this.createDefinitionsFolder(cbaPackage.definitions, packageCreationUtils);
17         this.addScriptsFolder(cbaPackage.scripts);
18     }
19
20
21     /* private createDefinitionsFolder(definition: Definition) {
22          definition.imports.forEach((key, value) => {
23              console.log(key);
24              FilesContent.putData(key, value);
25          });
26
27      }*/
28
29     private addScriptsFolder(scripts: Scripts) {
30         scripts.files.forEach((key, value) => {
31             FilesContent.putData(key, value);
32         });
33     }
34
35     private createDefinitionsFolder(definition: Definition, packageCreationUtils: PackageCreationUtils) {
36         definition.imports.forEach((key, valueOfFile) => {
37             FilesContent.putData(key, valueOfFile);
38         });
39
40         const filenameEntry = 'Definitions/vLB_CDS.json';
41         const vlbDefinition: VlbDefinition = new VlbDefinition();
42         const metadata: Metadata = new Metadata();
43
44         metadata.template_author = 'Shaaban Ebrahim';
45         metadata.template_name = definition.metaDataTab.name;
46         metadata.template_tags = definition.metaDataTab.tags;
47         metadata.template_version = definition.metaDataTab.version;
48         metadata['author-email'] = 'shaaban.eltanany.ext@orange.com';
49         metadata['user-groups'] = 'test';
50         definition.metaDataTab.mapOfCustomKey.forEach((key, customKeyValue) => {
51             metadata[key] = customKeyValue;
52         });
53         vlbDefinition.metadata = metadata;
54         // const files = Import[definition.imports.size];
55         const files: Import[] = [];
56         definition.imports.forEach((key, valueOfFile) => {
57             files.push({file: valueOfFile});
58         });
59         console.log(vlbDefinition);
60         vlbDefinition.imports = files;
61         /*  vlbDefinition.imports = this.definition.imports; /!*[{
62               this.this.definition.imports.forEach(key,value =>{
63
64               });
65               file: 'Definitions/data_types.json'
66           }]; */
67
68         const value = packageCreationUtils.transformToJson(vlbDefinition);
69         FilesContent.putData(filenameEntry, value);
70         console.log('hello there');
71         console.log(FilesContent.getMapOfFilesNamesAndContent());
72
73     }
74 }