added svcapi ui and camunda code
[it/otf.git] / otf-frontend / server / src / feathers / hooks / convertToJSON.js
1 /*  Copyright (c) 2019 AT&T Intellectual Property.                             #\r
2 #                                                                              #\r
3 #   Licensed under the Apache License, Version 2.0 (the "License");            #\r
4 #   you may not use this file except in compliance with the License.           #\r
5 #   You may obtain a copy of the License at                                    #\r
6 #                                                                              #\r
7 #       http://www.apache.org/licenses/LICENSE-2.0                             #\r
8 #                                                                              #\r
9 #   Unless required by applicable law or agreed to in writing, software        #\r
10 #   distributed under the License is distributed on an "AS IS" BASIS,          #\r
11 #   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.   #\r
12 #   See the License for the specific language governing permissions and        #\r
13 #   limitations under the License.                                             #\r
14 ##############################################################################*/\r
15 \r
16 \r
17 const YAML = require('yamljs');\r
18 \r
19 module.exports = function () {\r
20     function convertTabs(str){\r
21         return str.replace(/\t/g, '    ');\r
22     }\r
23         return async context => {\r
24                 \r
25                 if (context.data.length) {\r
26                         for (var i = 0; i < context.data.length; i++) {\r
27                                 if (context.data[i].testData && typeof '' === typeof context.data[i].testData) {\r
28                     context.data[i].testData = convertTabs(context.data[i].testData);\r
29                                         context.data[i].testData = YAML.parse(context.data[i].testData);\r
30                                 }\r
31                                 if (context.data[i].testConfig) {\r
32                     context.data[i].testConfig = convertTabs(context.data[i].testConfig);\r
33                                         context.data[i].testConfig = YAML.parse(context.data[i].testConfig);\r
34                                 }\r
35                                 if (context.data[i].testConfigTemplate) {\r
36                     context.data[i].testConfigTemplate = convertTabs(context.data[i].testConfigTemplate);\r
37                                         context.data[i].testConfigTemplate = YAML.parse(context.data[i].testConfigTemplate);\r
38                                 }\r
39                                 if (context.data[i].vthInputTemplate && typeof '' === typeof context.data[i].vthInputTemplate) {\r
40                                         context.data[i].vthInputTemplate = convertTabs(context.data[i].vthInputTemplate);\r
41                                         context.data[i].vthInputTemplate = YAML.parse(context.data[i].vthInputTemplate);\r
42                                 }\r
43 \r
44                 //Set empty string as empty json\r
45                 if (context.data[i].testData == ''){\r
46                     context.data[i].testData = {};\r
47                 }\r
48                 if (context.data[i].testConfig == ''){\r
49                     context.data[i].testConfig = {};\r
50                 }\r
51                                 if (context.data[i].testConfigTemplate == '') {\r
52                     context.data[i].testConfigTemplate = {};\r
53                                 }\r
54                                 if(context.data[i].bpmnInstances){\r
55                                         for(let k in context.data[i].bpmnInstances){\r
56                                                 let key = context.data[i].bpmnInstances[k];\r
57                                                 if(key.testHeads){\r
58                                                         for(let h in key.testHeads){\r
59                                                                 let head = key.testHeads[h];\r
60                                                                 if(head.testHeadId.vthInputTemplate == ''){\r
61                                                                         head.testHeadId.vthInputTemplate = {};\r
62                                                                 }else if(head.testHeadId.vthInputTemplate && typeof '' === typeof head.testHeadId.vthInputTemplate){\r
63                                                                         head.testHeadId.vthInputTemplate = YAML.parse(head.testHeadId.vthInputTemplate);\r
64                                                                 }\r
65                                                         }\r
66                                                 }\r
67                                                 if(key.testDataTemplate == ''){ \r
68                                                         key.testDataTemplate = {};\r
69                                                 }else if(typeof '' === typeof key.testDataTemplate){\r
70                                                         key.testDataTemplate = YAML.parse(key.testDataTemplate);\r
71                                                 }       \r
72                                         }\r
73                                 }\r
74                         }\r
75                 } else {\r
76                         if (context.data.testData && typeof '' === typeof context.data.testData) {\r
77                 context.data.testData = convertTabs(context.data.testData);\r
78                                 context.data.testData = YAML.parse(context.data.testData);\r
79                         }\r
80                         if (context.data.testConfig) {\r
81                 context.data.testConfig = convertTabs(context.data.testConfig);\r
82                                 context.data.testConfig = YAML.parse(context.data.testConfig);\r
83                         }\r
84                         if (context.data.testConfigTemplate) {\r
85                 context.data.testConfigTemplate = convertTabs(context.data.testConfigTemplate);\r
86                                 context.data.testConfigTemplate = YAML.parse(context.data.testConfigTemplate);\r
87                         }\r
88                         if (context.data.vthInputTemplate && typeof '' === typeof context.data.vthInputTemplate) {\r
89                 context.data.vthInputTemplate = convertTabs(context.data.vthInputTemplate);\r
90                                 context.data.vthInputTemplate = YAML.parse(context.data.vthInputTemplate);\r
91                         }\r
92                         if (context.data.vthInput){\r
93                                 for(let k in context.data.vthInput){\r
94                                         if(typeof context.data.vthInput[k] === typeof ''){\r
95                                                 context.data.vthInput[k] = YAML.parse(context.data.vthInput[k]);\r
96                                                 if(context.data.vthInput[k] === null)\r
97                                                         context.data.vthInput[k] = {};\r
98                                         }\r
99                                 }\r
100                         }\r
101                         if(context.data.bpmnInstances){\r
102                                 for(let k in context.data.bpmnInstances){\r
103                                         let key = context.data.bpmnInstances[k];\r
104                                         if(key.testHeads){\r
105                                                 for(let h in key.testHeads){\r
106                                                         let head = key.testHeads[h];\r
107                                                         if(head.testHeadId.vthInputTemplate == ''){\r
108                                                                 head.testHeadId.vthInputTemplate = {};\r
109                                                         }else if(head.testHeadId.vthInputTemplate && typeof '' === typeof head.testHeadId.vthInputTemplate){\r
110                                                                 head.testHeadId.vthInputTemplate = YAML.parse(head.testHeadId.vthInputTemplate);\r
111                                                         }\r
112                                                 }\r
113                                         }\r
114                                         if(key.testDataTemplate == ''){ \r
115                                                 key.testDataTemplate = {};\r
116                                         }else  if(typeof '' === typeof key.testDataTemplate){\r
117                                                 key.testDataTemplate = YAML.parse(key.testDataTemplate);\r
118                                         }       \r
119                                 }\r
120                         }\r
121                         //Set empty string as empty json\r
122             if (context.data.testData == ''){\r
123                 context.data.testData = {};\r
124             }\r
125             if (context.data.testConfig == ''){\r
126                 context.data.testConfig = {};\r
127             }\r
128             if (context.data.testConfigTemplate == '') {\r
129                 context.data.testConfigTemplate = {};\r
130                         }\r
131                         if (context.data.vthInputTemplate == '') {\r
132                                 context.data.vthInputTemplate = {};\r
133                         }\r
134                 }\r
135                 // for(var j = 0; j < context.data.length; j++){\r
136                 //     for(var i = 0; i < context.data[j].testData.length; i++){\r
137                 //          context.data[j].testData[i].testData = YAML.parse(context.data[j].testData[i].testData);\r
138                 //     }\r
139                 // }\r
140                 return context;\r
141         };\r
142 };\r