added svcapi ui and camunda code
[it/otf.git] / otf-frontend / server / src / feathers / hooks / convertToYAML.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 isEmpty(obj) {\r
21                 for(var key in obj) {\r
22                         if(obj.hasOwnProperty(key))\r
23                                 return false;\r
24                 }\r
25                 return true;\r
26         }\r
27 \r
28         return async context => {\r
29                 \r
30                 if (context.result.length) {\r
31                         for (let i = 0; i < context.result.length; i++) {\r
32                                 if (context.result[i].testData) {\r
33                                         if(isEmpty(context.result[i].testData)){\r
34                                                 context.result[i].testDataJSON = {};\r
35                                                 context.result[i].testData = '';\r
36                                         }else if(typeof context.result[i].testDate != typeof ''){\r
37                                                 context.result[i].testDataJSON = context.result[i].testData;\r
38                                                 context.result[i].testData = YAML.stringify(context.result[i].testData);\r
39                                         }       \r
40                                 }\r
41                                 if (context.result[i].testConfig) {\r
42                                         if(isEmpty(context.result[i].testConfig)){      \r
43                                                 context.result[i].testConfig = '';\r
44                                         }else{\r
45                                                 context.result[i].testConfig = YAML.stringify(context.result[i].testConfig);\r
46                                         }       \r
47                                 }\r
48                                 if(context.result[i].vthInputTemplate){\r
49                                         if(isEmpty(context.result[i].vthInputTemplate)){\r
50                                                 context.result[i].vthInputTemplate = '';\r
51                                         }else{\r
52                                                 if(typeof '' !== typeof context.result[i].vthInputTemplate){\r
53                                                         context.result[i].vthInputTemplateJSON = context.result[i].vthInputTemplate;\r
54                                                         context.result[i].vthInputTemplate = YAML.stringify(context.result[i].vthInputTemplate);\r
55                                                 }\r
56                                         }\r
57                                 }\r
58                                 if (context.result[i].vthInput) {\r
59                                         context.result[i].vthInputYaml = '';\r
60                                         if(isEmpty(context.result[i].vthInput)){\r
61                                                 context.result[i].vthInput = {};\r
62                                         }else{\r
63                                                 context.result[i].vthInputYaml = {};\r
64                                                 for(key in context.result[i].vthInput){\r
65                                                         \r
66                                                         context.result[i].vthInputYaml[key] = YAML.stringify(context.result[i].vthInput[key]);\r
67                                                 }\r
68                                         }\r
69                                         \r
70                                 }\r
71                                 if (context.result[i].bpmnInstances) {\r
72                                         \r
73                                         //console.log("HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH");\r
74                                         // if(context.re)\r
75                                         //      if(isEmpty(context.result[i].bpmnInstances[0].testHeads[0].testHeadId.vthInputTemplate)){\r
76                                         //              context.result[i].bpmnInstances[0].testHeads[0].testHeadId.vthInputTemplate = '';\r
77                                         //      }else{\r
78                                         //              context.result[i].bpmnInstances[0].testHeads[0].testHeadId.vthInputTemplateJSON = context.result[i].bpmnInstances[0].testHeads[0].testHeadId.vthInputTemplate;\r
79                                         //              context.result[i].bpmnInstances[0].testHeads[0].testHeadId.vthInputTemplate = YAML.stringify(context.result[i].bpmnInstances[0].testHeads[0].testHeadId.vthInputTemplate);\r
80                                         //      }\r
81                                         \r
82                                 \r
83                                         for(let k = 0; k < context.result[i].bpmnInstances.length; k++){\r
84                                                 \r
85                                                 if( context.result[i].bpmnInstances[k].testHeads){\r
86                                                         for(let h = 0; h <  context.result[i].bpmnInstances[k].testHeads.length; h++){\r
87                                                                 //let head = key.testHeads[h];\r
88                                                                 //console.log("___________________________________________________________");\r
89                                                                 //console.log(context.result[i].bpmnInstances[k].testHeads[h].testHeadId);\r
90                                                                 if(typeof '' != typeof context.result[i].bpmnInstances[k].testHeads[h].testHeadId.vthInputTemplate){\r
91                                                                         if(isEmpty(context.result[i].bpmnInstances[k].testHeads[h].testHeadId.vthInputTemplate)){\r
92                                                                                 context.result[i].bpmnInstances[k].testHeads[h].testHeadId.vthInputTemplateJSON = {};\r
93                                                                                 context.result[i].bpmnInstances[k].testHeads[h].testHeadId.vthInputTemplate = '';\r
94                                                                         }else if(context.result[i].bpmnInstances[k].testHeads[h].testHeadId.vthInputTemplate){\r
95                                                                                 context.result[i].bpmnInstances[k].testHeads[h].testHeadId.vthInputTemplateJSON = context.result[i].bpmnInstances[k].testHeads[h].testHeadId.vthInputTemplate;\r
96                                                                                 context.result[i].bpmnInstances[k].testHeads[h].testHeadId.vthInputTemplate = YAML.stringify(context.result[i].bpmnInstances[k].testHeads[h].testHeadId.vthInputTemplate);\r
97                                                                         }\r
98                                                                 }\r
99                                                         }\r
100                                                 }\r
101                                                 if(isEmpty(context.result[i].bpmnInstances[k].testDataTemplate)){       \r
102                                                         context.result[i].bpmnInstances[k].testDataTemplate = '';\r
103                                                         context.result[i].bpmnInstances[k].testDataTemplateJSON = {};\r
104                                                 }else if(typeof context.result[i].bpmnInstances[k].testDataTemplate !== typeof ''){\r
105                                                         context.result[i].bpmnInstances[k].testDataTemplateJSON = context.result[i].bpmnInstances[k].testDataTemplate;\r
106                                                         context.result[i].bpmnInstances[k].testDataTemplate = YAML.stringify(context.result[i].bpmnInstances[k].testDataTemplate);\r
107                                                 }       \r
108                                                 //context.result[i].bpmnInstances[k] = key;\r
109                                         }\r
110                                         \r
111                                 }\r
112                         }\r
113                 } else if (context.result.total > 1) {\r
114                         for (let i = 0; i < context.result.data.length; i++) {\r
115                                 if (context.result.data[i].testData) {\r
116                                         if(isEmpty(context.result.data[i].testData)){\r
117                                                 context.result.data[i].testData = '';\r
118                                                 context.result.data[i].testDataJSON = {};\r
119                                         }else if(typeof context.result.data[i].testDate != typeof ''){\r
120                                                 context.result.data[i].testDataJSON = context.result.data[i].testData;\r
121                                                 context.result.data[i].testData = YAML.stringify(context.result.data[i].testData);\r
122                                         }\r
123                                         \r
124                                 }\r
125                                 if (context.result.data[i].vthInput) {\r
126                                         context.result.data[i].vthInputYaml = '';\r
127                                         if(isEmpty(context.result.data[i].vthInput)){\r
128                                                 context.result.data[i].vthInput = {};\r
129                                         }else{\r
130                                                 context.result.data[i].vthInputYaml = {};\r
131                                                 for(key in context.result.data[i].vthInput){\r
132                                                         \r
133                                                         context.result.data[i].vthInputYaml[key] = YAML.stringify(context.result.data[i].vthInput[key]);\r
134                                                 }\r
135                                         }\r
136                                         \r
137                                 }\r
138                                 if (context.result.data[i].testConfig) {\r
139                                         if(isEmpty(context.result.data[i].testConfig)){\r
140                                                 context.result.data[i].testConfig = '';\r
141                                         }else{\r
142                                                 context.result.data[i].testConfig = YAML.stringify(context.result.data[i].testConfig);\r
143                                         }\r
144                                 }\r
145                                 if (context.result.data[i].testDataTemplate) {\r
146                                         if(isEmpty(context.result.data[i].testDataTemplate)){\r
147                                                 context.result.data[i].testDataTemplate = '';\r
148                                                 context.result.data[i].testDataTemplateJSON = {};\r
149                                         }else{\r
150                                                 context.result.data[i].testDataTemplateJSON = context.result.data[i].testDataTemplate;\r
151                                                 context.result.data[i].testDataTemplate = YAML.stringify(context.result.data[i].testDataTemplate);\r
152                                         }\r
153                                 }\r
154                                 if(context.result.data[i].bpmnInstances){\r
155                                         for(let k in context.result.data[i].bpmnInstances){\r
156                                                 let key = context.result.data[i].bpmnInstances[k];\r
157                                                 if(key.testHeads){\r
158                                                         for(let h in key.testHeads){\r
159                                                                 let head = key.testHeads[h];\r
160                                                                 \r
161                                                                 if(typeof '' != typeof context.result.data[i].bpmnInstances[k].testHeads[h].testHeadId.vthInputTemplate){       \r
162                                                                         if(isEmpty(head.testHeadId.vthInputTemplate)){\r
163                                                                                 head.testHeadId.vthInputTemplate = '';\r
164                                                                                 head.testHeadId.vthInputTemplateJSON = {};\r
165                                                                         }else if(head.testHeadId.vthInputTemplate){\r
166                                                                                 head.testHeadId.vthInputTemplateJSON = head.testHeadId.vthInputTemplate;\r
167                                                                                 head.testHeadId.vthInputTemplate = YAML.stringify(head.testHeadId.vthInputTemplate);\r
168                                                                         }\r
169                                                                 }\r
170                                                                 key.testHeads[h] = head;\r
171                                                         }\r
172                                                 }\r
173                                                 if(isEmpty(key.testDataTemplate)){      \r
174                                                         key.testDataTemplate = '';\r
175                                                         key.testDataTemplateJSON = {};\r
176                                                 }else if(typeof key.testDataTemplate !== typeof ''){\r
177                                                         key.testDataTemplateJSON = key.testDataTemplate;\r
178                                                         key.testDataTemplate = YAML.stringify(key.testDataTemplate);\r
179                                                 }\r
180                                                 context.result.data[i].bpmnInstances[k] = key;  \r
181                                         }\r
182                                 }\r
183                         }\r
184                 } else if (context.result.data) {\r
185                         if (context.result.data.testData) {\r
186                                 if(isEmpty(context.result.data.testData)){\r
187                                         context.result.data.testData = '';\r
188                                         context.result.data.testDataJSON = {};\r
189                                 }else if(typeof context.result.data.testDate != typeof ''){\r
190                                         context.result.data.testDataJSON = context.result.data.testData;\r
191                                         context.result.data.testData = YAML.stringify(context.result.data.testData);\r
192                                 }       \r
193                         }\r
194                         if (context.result.data.testConfig) {\r
195                                 if(isEmpty(context.result.data.testConfig)){\r
196                                         context.result.data.testConfig = '';\r
197                                 }else{\r
198                                         context.result.data.testConfig = YAML.stringify(context.result.data.testConfig);\r
199                                 }       \r
200                         }\r
201                         if (context.result.data.vthInput) {\r
202                                 context.result.data.vthInputYaml = '';\r
203                                 if(isEmpty(context.result.data.vthInput)){\r
204                                         context.result.data.vthInput = {};\r
205                                 }else{\r
206                                         context.result.data.vthInputYaml = {};\r
207                                         for(key in context.result.data.vthInput){\r
208                                                 context.result.data.vthInputYaml[key] = YAML.stringify(context.result.data.vthInput[key]);\r
209                                         }\r
210                                 }\r
211                                 \r
212                         }\r
213                         if (context.result.data.testDataTemplate) {\r
214                                 if(isEmpty(context.result.data.testDataTemplate)){\r
215                                         context.result.data.testDataTemplate = '';\r
216                                         context.result.data.testDataTemplateJSON = {};\r
217                                 }else{\r
218                                         context.result.data.testDataTemplateJSON = context.result.data.testDataTemplate;\r
219                                         context.result.data.testDataTemplate = YAML.stringify(context.result.data.testDataTemplate);\r
220                                 }               \r
221                         }\r
222                         if (context.result.data.bpmnInstances){\r
223                                 for(let k in context.result.data.bpmnInstances){\r
224                                         let key = context.result.data.bpmnInstances[k];\r
225                                         if(key.testHeads){\r
226                                                 for(let h in key.testHeads){\r
227                                                         let head = key.testHeads[h];\r
228                                                         //console.log(head.testHeadId);\r
229                                                         if(typeof '' != typeof context.result.data.bpmnInstances[k].testHeads[h].testHeadId.vthInputTemplate){\r
230                                                                 if(isEmpty(head.testHeadId.vthInputTemplate)){\r
231                                                                         head.testHeadId.vthInputTemplate = '';\r
232                                                                         head.testHeadId.vthInputTemplateJSON = {};\r
233                                                                 }else if(head.testHeadId.vthInputTemplate){\r
234                                                                         head.testHeadId.vthInputTemplateJSON = head.testHeadId.vthInputTemplate;\r
235                                                                         head.testHeadId.vthInputTemplate = YAML.stringify(head.testHeadId.vthInputTemplate);\r
236                                                                 }\r
237                                                         }\r
238                                                         key.testHeads[h] = head;\r
239                                                 }\r
240                                         }\r
241                                         if(isEmpty(key.testDataTemplate)){      \r
242                                                 key.testDataTemplate = '';\r
243                                                 key.testDataTemplateJSON = {};\r
244                                         }else if(typeof key.testDataTemplate !== typeof ''){\r
245                                                 key.testDataTemplateJSON = key.testDataTemplate;\r
246                                                 key.testDataTemplate = YAML.stringify(key.testDataTemplate);\r
247                                         }\r
248                                         context.result.data.bpmnInstances[k] = key;     \r
249                                 }\r
250                         }\r
251                 } else {\r
252                         if (context.result.testData) {\r
253                                 \r
254                                 if(isEmpty(context.result.testData)){\r
255                                         context.result.testData = '';\r
256                                         context.result.testDataJSON = {};\r
257                                 }else if(typeof context.result.testData != typeof ''){\r
258                                         context.result.testDataJSON = context.result.testData;\r
259                                         context.result.testData = YAML.stringify(context.result.testData);\r
260                                 }else if(typeof context.result.testData == typeof ''){\r
261                                         context.result.testDataJSON = YAML.parse(context.result.testData);\r
262                                 }\r
263                                 \r
264                         }\r
265                         if (context.result.testConfig) {\r
266                                 if(isEmpty(context.result.testConfig)){\r
267                                         context.result.testConfig = '';\r
268                                 }else{\r
269                                         context.result.testConfig = YAML.stringify(context.result.testConfig);\r
270                                 }\r
271                         }\r
272                         if (context.result.vthInput) {\r
273                                 context.result.vthInputYaml = '';\r
274                                 if(isEmpty(context.result.vthInput)){\r
275                                         context.result.vthInput = {};\r
276                                 }else{\r
277                                         context.result.vthInputYaml = {};\r
278                                         for(key in context.result.vthInput){\r
279                                                 context.result.vthInputYaml[key] = YAML.stringify(context.result.vthInput[key]);\r
280                                         }\r
281                                 }\r
282                                 \r
283                         }\r
284                         if (context.result.testDataTemplate) {\r
285                                 if(isEmpty(context.result.testDataTemplate)){\r
286                                         context.result.testDataTemplate = '';\r
287                                         context.result.testDataTemplateJSON = {};\r
288                                 }else{\r
289                                         context.result.testDataTemplateJSON = context.result.testDataTemplate;\r
290                                         context.result.testDataTemplate = YAML.stringify(context.result.testDataTemplate);\r
291                                 }\r
292                         }\r
293                         if(context.result.vthInputTemplate){\r
294                                 if(isEmpty(context.result.vthInputTemplate)){\r
295                                         context.result.vthInputTemplate = '';\r
296                                         context.result.vthInputTemplateJSON = {};\r
297                                 }else{\r
298                                         context.result.vthInputTemplateJSON = context.result.vthInputTemplate;\r
299                                         context.result.vthInputTemplate = YAML.stringify(context.result.vthInputTemplate);\r
300                                 }\r
301                         }\r
302                         if(context.result.bpmnInstances){\r
303                                 for(let k in context.result.bpmnInstances){\r
304                                         let key = context.result.bpmnInstances[k];\r
305                                         if(key.testHeads){\r
306                                                 for(let h in key.testHeads){\r
307                                                         let head = key.testHeads[h];\r
308                                                         //console.log(head.testHeadId);\r
309                                                         if(typeof '' != typeof context.result.bpmnInstances[k].testHeads[h].testHeadId.vthInputTemplate){\r
310                                                                 if(isEmpty(head.testHeadId.vthInputTemplate)){\r
311                                                                         head.testHeadId.vthInputTemplate = '';\r
312                                                                         head.testHeadId.vthInputTemplateJSON = {};\r
313                                                                 }else if(head.testHeadId.vthInputTemplate){\r
314                                                                         head.testHeadId.vthInputTemplateJSON = head.testHeadId.vthInputTemplate;\r
315                                                                         head.testHeadId.vthInputTemplate = YAML.stringify(head.testHeadId.vthInputTemplate);\r
316                                                                 }\r
317                                                         }\r
318                                                         key.testHeads[h] = head;\r
319                                                 }\r
320                                         }\r
321                                         if(isEmpty(key.testDataTemplate)){      \r
322                                                 key.testDataTemplate = '';\r
323                                                 key.testDataTemplateJSON = {};\r
324                                         }else if(typeof key.testDataTemplate !== typeof ''){\r
325                                                 key.testDataTemplateJSON = key.testDataTemplate;\r
326                                                 key.testDataTemplate = YAML.stringify(key.testDataTemplate);\r
327                                         }       \r
328                                         context.result.bpmnInstances[k] = key;\r
329                                 }\r
330                         }\r
331                 \r
332                 }\r
333                 return context;\r
334         };\r
335 };\r