ondc-code-generator 0.8.7 → 0.8.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/README.md +1 -1
  2. package/alpha/docs/page/index.html +6137 -0
  3. package/alpha/docs/page/style.css +204 -0
  4. package/alpha/docs/readme.md +5939 -0
  5. package/alpha/docs/validPaths.json +14351 -0
  6. package/alpha/page/index.html +6137 -0
  7. package/alpha/page/style.css +204 -0
  8. package/alpha/readme.md +5939 -0
  9. package/alpha/validPaths.json +11393 -34240
  10. package/alpha/validationpkg/examples/search.json +143 -0
  11. package/alpha/validationpkg/examples_output/search/case-001/output.json +12 -0
  12. package/alpha/validationpkg/go.mod +8 -0
  13. package/alpha/validationpkg/go.sum +4 -0
  14. package/alpha/validationpkg/jsonvalidations/cancel.go +1289 -0
  15. package/alpha/validationpkg/jsonvalidations/confirm.go +9121 -0
  16. package/alpha/validationpkg/jsonvalidations/init.go +4864 -0
  17. package/alpha/validationpkg/jsonvalidations/issue.go +4868 -0
  18. package/alpha/validationpkg/jsonvalidations/on_cancel.go +7111 -0
  19. package/alpha/validationpkg/jsonvalidations/on_confirm.go +8903 -0
  20. package/alpha/validationpkg/jsonvalidations/on_init.go +4445 -0
  21. package/alpha/validationpkg/jsonvalidations/on_issue.go +2828 -0
  22. package/alpha/validationpkg/jsonvalidations/on_issue_status.go +1938 -0
  23. package/alpha/validationpkg/jsonvalidations/on_search.go +3356 -0
  24. package/alpha/validationpkg/jsonvalidations/on_status.go +8129 -0
  25. package/alpha/validationpkg/jsonvalidations/on_track.go +1415 -0
  26. package/alpha/validationpkg/jsonvalidations/on_update.go +8700 -0
  27. package/alpha/validationpkg/jsonvalidations/search.go +3585 -0
  28. package/alpha/validationpkg/jsonvalidations/status.go +1073 -0
  29. package/alpha/validationpkg/jsonvalidations/track.go +1073 -0
  30. package/alpha/validationpkg/jsonvalidations/update.go +3012 -0
  31. package/alpha/validationpkg/main-validator.go +196 -0
  32. package/alpha/validationpkg/main-validator_test.go +165 -0
  33. package/alpha/validationpkg/storageutils/api_save_utils.go +83 -0
  34. package/alpha/validationpkg/storageutils/cancel.go +30 -0
  35. package/alpha/validationpkg/storageutils/confirm.go +30 -0
  36. package/alpha/validationpkg/storageutils/index.go +132 -0
  37. package/alpha/validationpkg/storageutils/init.go +30 -0
  38. package/alpha/validationpkg/storageutils/issue.go +30 -0
  39. package/alpha/validationpkg/storageutils/on_cancel.go +30 -0
  40. package/alpha/validationpkg/storageutils/on_confirm.go +30 -0
  41. package/alpha/validationpkg/storageutils/on_init.go +30 -0
  42. package/alpha/validationpkg/storageutils/on_issue.go +30 -0
  43. package/alpha/validationpkg/storageutils/on_issue_status.go +30 -0
  44. package/alpha/validationpkg/storageutils/on_search.go +30 -0
  45. package/alpha/validationpkg/storageutils/on_status.go +30 -0
  46. package/alpha/validationpkg/storageutils/on_track.go +30 -0
  47. package/alpha/validationpkg/storageutils/on_update.go +30 -0
  48. package/alpha/validationpkg/storageutils/save_utils.go +75 -0
  49. package/alpha/validationpkg/storageutils/search.go +30 -0
  50. package/alpha/validationpkg/storageutils/status.go +30 -0
  51. package/alpha/validationpkg/storageutils/track.go +30 -0
  52. package/alpha/validationpkg/storageutils/update.go +30 -0
  53. package/alpha/validationpkg/validationutils/json_normalizer.go +152 -0
  54. package/alpha/validationpkg/validationutils/json_path_utils.go +173 -0
  55. package/alpha/validationpkg/validationutils/storage-interface.go +107 -0
  56. package/alpha/validationpkg/validationutils/test-config.go +69 -0
  57. package/alpha/validationpkg/validationutils/validation_utils.go +429 -0
  58. package/dist/bin/cli.js +6 -2
  59. package/dist/generator/config-compiler.d.ts +2 -2
  60. package/dist/generator/config-compiler.js +10 -4
  61. package/dist/generator/generators/classes/abstract-generator.d.ts +1 -0
  62. package/dist/generator/generators/go/go-generator.js +34 -17
  63. package/dist/generator/generators/go/templates/api-tests.mustache +1 -1
  64. package/dist/generator/generators/go/templates/go-mod.mustache +1 -1
  65. package/dist/generator/generators/go/templates/index.mustache +1 -1
  66. package/dist/generator/generators/go/templates/storage-templates/api-save-utils.mustache +1 -1
  67. package/dist/generator/generators/go/templates/storage-templates/api-save.mustache +1 -1
  68. package/dist/generator/generators/go/templates/storage-templates/index.mustache +1 -1
  69. package/dist/generator/generators/go/templates/storage-templates/save-utils.mustache +1 -1
  70. package/dist/generator/generators/go/templates/test-templates/validator-test.mustache +6 -6
  71. package/dist/types/compiler-types.d.ts +2 -1
  72. package/dist/types/compiler-types.js +1 -0
  73. package/docs/jval-dsl.md +913 -0
  74. package/package.json +1 -1
  75. package/alpha/possible-json-paths.json +0 -248
@@ -0,0 +1,2828 @@
1
+ // Code generated by github.com/ONDC-Official/automation-validation-compiler, DO NOT EDIT.
2
+
3
+ package jsonvalidations
4
+
5
+ import (
6
+ "validationpkg/validationutils"
7
+ )
8
+
9
+ func On_issue_Tests(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
10
+ totalResults, err := On_issueValidations(input)
11
+ if err != nil {
12
+ return nil, err
13
+ }
14
+
15
+ if !input.Config.Debug {
16
+ for i := range totalResults {
17
+ totalResults[i].DebugInfo = nil
18
+ }
19
+ }
20
+
21
+ if input.Config.HideParentErrors {
22
+ // Delete results with valid false and no description
23
+ filtered := make([]validationutils.ValidationOutput, 0)
24
+ for _, r := range totalResults {
25
+ if !r.Valid && r.Description == "" {
26
+ continue
27
+ }
28
+ filtered = append(filtered, r)
29
+ }
30
+ totalResults = filtered
31
+ }
32
+
33
+ if input.Config.OnlyInvalid {
34
+ res := make([]validationutils.ValidationOutput, 0)
35
+ for _, r := range totalResults {
36
+ if !r.Valid {
37
+ res = append(res, r)
38
+ }
39
+ }
40
+
41
+ if len(res) == 0 {
42
+ // Find the overall test result
43
+ var targetSuccess *validationutils.ValidationOutput
44
+ for i := range totalResults {
45
+ if totalResults[i].TestName == "On_issueValidations" {
46
+ targetSuccess = &totalResults[i]
47
+ break
48
+ }
49
+ }
50
+
51
+ if targetSuccess == nil {
52
+ panic("Critical: Overall test result not found")
53
+ }
54
+
55
+ return []validationutils.ValidationOutput{*targetSuccess}, nil
56
+ }
57
+
58
+ return res, nil
59
+ }
60
+
61
+ return totalResults, nil
62
+ }
63
+
64
+ var On_issueValidations = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
65
+
66
+ if input.Config.SkipTestsDict != nil {
67
+ if _, skip := input.Config.SkipTestsDict["On_issueValidations"]; skip {
68
+ return []validationutils.ValidationOutput{}, nil
69
+ }
70
+ }
71
+
72
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
73
+
74
+ subResults := make([]validationutils.ValidationOutput, 0)
75
+ valid := true
76
+ configureDebugInfo := ""
77
+ for _, testObjMap := range scope {
78
+ validationutils.UnusedFunction(testObjMap)
79
+
80
+ var REQUIRED_CONTEXT_FIELDS = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
81
+
82
+ if input.Config.SkipTestsDict != nil {
83
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_CONTEXT_FIELDS"]; skip {
84
+ return []validationutils.ValidationOutput{}, nil
85
+ }
86
+ }
87
+
88
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
89
+
90
+ subResults := make([]validationutils.ValidationOutput, 0)
91
+ valid := true
92
+ configureDebugInfo := ""
93
+ for _, testObjMap := range scope {
94
+ validationutils.UnusedFunction(testObjMap)
95
+
96
+ var REQUIRED_CONTEXT_DOMAIN = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
97
+
98
+ if input.Config.SkipTestsDict != nil {
99
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_CONTEXT_DOMAIN"]; skip {
100
+ return []validationutils.ValidationOutput{}, nil
101
+ }
102
+ }
103
+
104
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
105
+
106
+ subResults := make([]validationutils.ValidationOutput, 0)
107
+ valid := true
108
+ configureDebugInfo := ""
109
+ for _, testObjMap := range scope {
110
+ validationutils.UnusedFunction(testObjMap)
111
+
112
+ attr := validationutils.GetJsonPath(testObjMap, "$.context.domain", true)
113
+ validationutils.UnusedFunction(attr)
114
+
115
+ validate := validationutils.ArePresent(attr)
116
+
117
+ configureDebugInfo = `{"_NAME_":"REQUIRED_CONTEXT_DOMAIN","attr":"$.context.domain","_RETURN_":"attr are present"}`
118
+
119
+ if !validate {
120
+ result := validationutils.ValidationOutput{
121
+ TestName: "REQUIRED_CONTEXT_DOMAIN",
122
+ Valid: false,
123
+ Code: 30000,
124
+ Description: `#### **REQUIRED_CONTEXT_DOMAIN**
125
+
126
+ - $.context.domain must be present in the payload`,
127
+ DebugInfo: &validationutils.DebugInfo{
128
+ FedConfig: configureDebugInfo,
129
+ },
130
+ }
131
+ return []validationutils.ValidationOutput{result}, nil
132
+ }
133
+
134
+ }
135
+
136
+ result := validationutils.ValidationOutput{
137
+ TestName: "REQUIRED_CONTEXT_DOMAIN",
138
+ Valid: valid,
139
+ Code: 0,
140
+ DebugInfo: &validationutils.DebugInfo{
141
+ FedConfig: configureDebugInfo,
142
+ },
143
+ }
144
+
145
+ if valid {
146
+ result.Code = 200
147
+ } else {
148
+ result.Code = 30000
149
+ }
150
+
151
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
152
+ results = append(results, result)
153
+ results = append(results, subResults...)
154
+
155
+ return results, nil
156
+ }
157
+ var REQUIRED_CONTEXT_COUNTRY = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
158
+
159
+ if input.Config.SkipTestsDict != nil {
160
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_CONTEXT_COUNTRY"]; skip {
161
+ return []validationutils.ValidationOutput{}, nil
162
+ }
163
+ }
164
+
165
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
166
+
167
+ subResults := make([]validationutils.ValidationOutput, 0)
168
+ valid := true
169
+ configureDebugInfo := ""
170
+ for _, testObjMap := range scope {
171
+ validationutils.UnusedFunction(testObjMap)
172
+
173
+ attr := validationutils.StringSliceToInterface([]string{`$.context.location.country.code`})
174
+ validationutils.UnusedFunction(attr)
175
+
176
+ validate := validationutils.ArePresent(attr)
177
+
178
+ configureDebugInfo = `{"_NAME_":"REQUIRED_CONTEXT_COUNTRY","attr":["$.context.location.country.code"],"_RETURN_":"attr are present"}`
179
+
180
+ if !validate {
181
+ result := validationutils.ValidationOutput{
182
+ TestName: "REQUIRED_CONTEXT_COUNTRY",
183
+ Valid: false,
184
+ Code: 30000,
185
+ Description: `#### **REQUIRED_CONTEXT_COUNTRY**
186
+
187
+ - ["$.context.location.country.code"] must be present in the payload`,
188
+ DebugInfo: &validationutils.DebugInfo{
189
+ FedConfig: configureDebugInfo,
190
+ },
191
+ }
192
+ return []validationutils.ValidationOutput{result}, nil
193
+ }
194
+
195
+ }
196
+
197
+ result := validationutils.ValidationOutput{
198
+ TestName: "REQUIRED_CONTEXT_COUNTRY",
199
+ Valid: valid,
200
+ Code: 0,
201
+ DebugInfo: &validationutils.DebugInfo{
202
+ FedConfig: configureDebugInfo,
203
+ },
204
+ }
205
+
206
+ if valid {
207
+ result.Code = 200
208
+ } else {
209
+ result.Code = 30000
210
+ }
211
+
212
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
213
+ results = append(results, result)
214
+ results = append(results, subResults...)
215
+
216
+ return results, nil
217
+ }
218
+ var REQUIRED_CONTEXT_CITY = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
219
+
220
+ if input.Config.SkipTestsDict != nil {
221
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_CONTEXT_CITY"]; skip {
222
+ return []validationutils.ValidationOutput{}, nil
223
+ }
224
+ }
225
+
226
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
227
+
228
+ subResults := make([]validationutils.ValidationOutput, 0)
229
+ valid := true
230
+ configureDebugInfo := ""
231
+ for _, testObjMap := range scope {
232
+ validationutils.UnusedFunction(testObjMap)
233
+
234
+ attr := validationutils.StringSliceToInterface([]string{`$.context.location.city.code`})
235
+ validationutils.UnusedFunction(attr)
236
+
237
+ validate := validationutils.ArePresent(attr)
238
+
239
+ configureDebugInfo = `{"_NAME_":"REQUIRED_CONTEXT_CITY","attr":["$.context.location.city.code"],"_RETURN_":"attr are present"}`
240
+
241
+ if !validate {
242
+ result := validationutils.ValidationOutput{
243
+ TestName: "REQUIRED_CONTEXT_CITY",
244
+ Valid: false,
245
+ Code: 30000,
246
+ Description: `#### **REQUIRED_CONTEXT_CITY**
247
+
248
+ - ["$.context.location.city.code"] must be present in the payload`,
249
+ DebugInfo: &validationutils.DebugInfo{
250
+ FedConfig: configureDebugInfo,
251
+ },
252
+ }
253
+ return []validationutils.ValidationOutput{result}, nil
254
+ }
255
+
256
+ }
257
+
258
+ result := validationutils.ValidationOutput{
259
+ TestName: "REQUIRED_CONTEXT_CITY",
260
+ Valid: valid,
261
+ Code: 0,
262
+ DebugInfo: &validationutils.DebugInfo{
263
+ FedConfig: configureDebugInfo,
264
+ },
265
+ }
266
+
267
+ if valid {
268
+ result.Code = 200
269
+ } else {
270
+ result.Code = 30000
271
+ }
272
+
273
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
274
+ results = append(results, result)
275
+ results = append(results, subResults...)
276
+
277
+ return results, nil
278
+ }
279
+ var REQUIRED_CONTEXT_TRANSACTION_ID = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
280
+
281
+ if input.Config.SkipTestsDict != nil {
282
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_CONTEXT_TRANSACTION_ID"]; skip {
283
+ return []validationutils.ValidationOutput{}, nil
284
+ }
285
+ }
286
+
287
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
288
+
289
+ subResults := make([]validationutils.ValidationOutput, 0)
290
+ valid := true
291
+ configureDebugInfo := ""
292
+ for _, testObjMap := range scope {
293
+ validationutils.UnusedFunction(testObjMap)
294
+
295
+ attr := validationutils.GetJsonPath(testObjMap, "$.context.transaction_id", true)
296
+ validationutils.UnusedFunction(attr)
297
+
298
+ validate := validationutils.ArePresent(attr)
299
+
300
+ configureDebugInfo = `{"_NAME_":"REQUIRED_CONTEXT_TRANSACTION_ID","attr":"$.context.transaction_id","_RETURN_":"attr are present"}`
301
+
302
+ if !validate {
303
+ result := validationutils.ValidationOutput{
304
+ TestName: "REQUIRED_CONTEXT_TRANSACTION_ID",
305
+ Valid: false,
306
+ Code: 30000,
307
+ Description: `#### **REQUIRED_CONTEXT_TRANSACTION_ID**
308
+
309
+ - $.context.transaction_id must be present in the payload`,
310
+ DebugInfo: &validationutils.DebugInfo{
311
+ FedConfig: configureDebugInfo,
312
+ },
313
+ }
314
+ return []validationutils.ValidationOutput{result}, nil
315
+ }
316
+
317
+ }
318
+
319
+ result := validationutils.ValidationOutput{
320
+ TestName: "REQUIRED_CONTEXT_TRANSACTION_ID",
321
+ Valid: valid,
322
+ Code: 0,
323
+ DebugInfo: &validationutils.DebugInfo{
324
+ FedConfig: configureDebugInfo,
325
+ },
326
+ }
327
+
328
+ if valid {
329
+ result.Code = 200
330
+ } else {
331
+ result.Code = 30000
332
+ }
333
+
334
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
335
+ results = append(results, result)
336
+ results = append(results, subResults...)
337
+
338
+ return results, nil
339
+ }
340
+ var REQUIRED_CONTEXT_MESSAGE_ID = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
341
+
342
+ if input.Config.SkipTestsDict != nil {
343
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_CONTEXT_MESSAGE_ID"]; skip {
344
+ return []validationutils.ValidationOutput{}, nil
345
+ }
346
+ }
347
+
348
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
349
+
350
+ subResults := make([]validationutils.ValidationOutput, 0)
351
+ valid := true
352
+ configureDebugInfo := ""
353
+ for _, testObjMap := range scope {
354
+ validationutils.UnusedFunction(testObjMap)
355
+
356
+ attr := validationutils.GetJsonPath(testObjMap, "$.context.message_id", true)
357
+ validationutils.UnusedFunction(attr)
358
+
359
+ validate := validationutils.ArePresent(attr)
360
+
361
+ configureDebugInfo = `{"_NAME_":"REQUIRED_CONTEXT_MESSAGE_ID","attr":"$.context.message_id","_RETURN_":"attr are present"}`
362
+
363
+ if !validate {
364
+ result := validationutils.ValidationOutput{
365
+ TestName: "REQUIRED_CONTEXT_MESSAGE_ID",
366
+ Valid: false,
367
+ Code: 30000,
368
+ Description: `#### **REQUIRED_CONTEXT_MESSAGE_ID**
369
+
370
+ - $.context.message_id must be present in the payload`,
371
+ DebugInfo: &validationutils.DebugInfo{
372
+ FedConfig: configureDebugInfo,
373
+ },
374
+ }
375
+ return []validationutils.ValidationOutput{result}, nil
376
+ }
377
+
378
+ }
379
+
380
+ result := validationutils.ValidationOutput{
381
+ TestName: "REQUIRED_CONTEXT_MESSAGE_ID",
382
+ Valid: valid,
383
+ Code: 0,
384
+ DebugInfo: &validationutils.DebugInfo{
385
+ FedConfig: configureDebugInfo,
386
+ },
387
+ }
388
+
389
+ if valid {
390
+ result.Code = 200
391
+ } else {
392
+ result.Code = 30000
393
+ }
394
+
395
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
396
+ results = append(results, result)
397
+ results = append(results, subResults...)
398
+
399
+ return results, nil
400
+ }
401
+ var REQUIRED_CONTEXT_ACTION = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
402
+
403
+ if input.Config.SkipTestsDict != nil {
404
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_CONTEXT_ACTION"]; skip {
405
+ return []validationutils.ValidationOutput{}, nil
406
+ }
407
+ }
408
+
409
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
410
+
411
+ subResults := make([]validationutils.ValidationOutput, 0)
412
+ valid := true
413
+ configureDebugInfo := ""
414
+ for _, testObjMap := range scope {
415
+ validationutils.UnusedFunction(testObjMap)
416
+
417
+ attr := validationutils.GetJsonPath(testObjMap, "$.context.action", true)
418
+ validationutils.UnusedFunction(attr)
419
+
420
+ validate := validationutils.ArePresent(attr)
421
+
422
+ configureDebugInfo = `{"_NAME_":"REQUIRED_CONTEXT_ACTION","attr":"$.context.action","_RETURN_":"attr are present"}`
423
+
424
+ if !validate {
425
+ result := validationutils.ValidationOutput{
426
+ TestName: "REQUIRED_CONTEXT_ACTION",
427
+ Valid: false,
428
+ Code: 30000,
429
+ Description: `#### **REQUIRED_CONTEXT_ACTION**
430
+
431
+ - $.context.action must be present in the payload`,
432
+ DebugInfo: &validationutils.DebugInfo{
433
+ FedConfig: configureDebugInfo,
434
+ },
435
+ }
436
+ return []validationutils.ValidationOutput{result}, nil
437
+ }
438
+
439
+ }
440
+
441
+ result := validationutils.ValidationOutput{
442
+ TestName: "REQUIRED_CONTEXT_ACTION",
443
+ Valid: valid,
444
+ Code: 0,
445
+ DebugInfo: &validationutils.DebugInfo{
446
+ FedConfig: configureDebugInfo,
447
+ },
448
+ }
449
+
450
+ if valid {
451
+ result.Code = 200
452
+ } else {
453
+ result.Code = 30000
454
+ }
455
+
456
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
457
+ results = append(results, result)
458
+ results = append(results, subResults...)
459
+
460
+ return results, nil
461
+ }
462
+ var REQUIRED_CONTEXT_TIMESTAMP = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
463
+
464
+ if input.Config.SkipTestsDict != nil {
465
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_CONTEXT_TIMESTAMP"]; skip {
466
+ return []validationutils.ValidationOutput{}, nil
467
+ }
468
+ }
469
+
470
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
471
+
472
+ subResults := make([]validationutils.ValidationOutput, 0)
473
+ valid := true
474
+ configureDebugInfo := ""
475
+ for _, testObjMap := range scope {
476
+ validationutils.UnusedFunction(testObjMap)
477
+
478
+ attr := validationutils.GetJsonPath(testObjMap, "$.context.timestamp", true)
479
+ validationutils.UnusedFunction(attr)
480
+
481
+ validate := validationutils.ArePresent(attr)
482
+
483
+ configureDebugInfo = `{"_NAME_":"REQUIRED_CONTEXT_TIMESTAMP","attr":"$.context.timestamp","_RETURN_":"attr are present"}`
484
+
485
+ if !validate {
486
+ result := validationutils.ValidationOutput{
487
+ TestName: "REQUIRED_CONTEXT_TIMESTAMP",
488
+ Valid: false,
489
+ Code: 30000,
490
+ Description: `#### **REQUIRED_CONTEXT_TIMESTAMP**
491
+
492
+ - $.context.timestamp must be present in the payload`,
493
+ DebugInfo: &validationutils.DebugInfo{
494
+ FedConfig: configureDebugInfo,
495
+ },
496
+ }
497
+ return []validationutils.ValidationOutput{result}, nil
498
+ }
499
+
500
+ }
501
+
502
+ result := validationutils.ValidationOutput{
503
+ TestName: "REQUIRED_CONTEXT_TIMESTAMP",
504
+ Valid: valid,
505
+ Code: 0,
506
+ DebugInfo: &validationutils.DebugInfo{
507
+ FedConfig: configureDebugInfo,
508
+ },
509
+ }
510
+
511
+ if valid {
512
+ result.Code = 200
513
+ } else {
514
+ result.Code = 30000
515
+ }
516
+
517
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
518
+ results = append(results, result)
519
+ results = append(results, subResults...)
520
+
521
+ return results, nil
522
+ }
523
+ var REQUIRED_CONTEXT_VERSION = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
524
+
525
+ if input.Config.SkipTestsDict != nil {
526
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_CONTEXT_VERSION"]; skip {
527
+ return []validationutils.ValidationOutput{}, nil
528
+ }
529
+ }
530
+
531
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
532
+
533
+ subResults := make([]validationutils.ValidationOutput, 0)
534
+ valid := true
535
+ configureDebugInfo := ""
536
+ for _, testObjMap := range scope {
537
+ validationutils.UnusedFunction(testObjMap)
538
+
539
+ attr := validationutils.StringSliceToInterface([]string{`$.context.version`})
540
+ validationutils.UnusedFunction(attr)
541
+
542
+ validate := validationutils.ArePresent(attr)
543
+
544
+ configureDebugInfo = `{"_NAME_":"REQUIRED_CONTEXT_VERSION","attr":["$.context.version"],"_RETURN_":"attr are present"}`
545
+
546
+ if !validate {
547
+ result := validationutils.ValidationOutput{
548
+ TestName: "REQUIRED_CONTEXT_VERSION",
549
+ Valid: false,
550
+ Code: 30000,
551
+ Description: `#### **REQUIRED_CONTEXT_VERSION**
552
+
553
+ - ["$.context.version"] must be present in the payload`,
554
+ DebugInfo: &validationutils.DebugInfo{
555
+ FedConfig: configureDebugInfo,
556
+ },
557
+ }
558
+ return []validationutils.ValidationOutput{result}, nil
559
+ }
560
+
561
+ }
562
+
563
+ result := validationutils.ValidationOutput{
564
+ TestName: "REQUIRED_CONTEXT_VERSION",
565
+ Valid: valid,
566
+ Code: 0,
567
+ DebugInfo: &validationutils.DebugInfo{
568
+ FedConfig: configureDebugInfo,
569
+ },
570
+ }
571
+
572
+ if valid {
573
+ result.Code = 200
574
+ } else {
575
+ result.Code = 30000
576
+ }
577
+
578
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
579
+ results = append(results, result)
580
+ results = append(results, subResults...)
581
+
582
+ return results, nil
583
+ }
584
+ var REQUIRED_CONTEXT_BAP_URI = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
585
+
586
+ if input.Config.SkipTestsDict != nil {
587
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_CONTEXT_BAP_URI"]; skip {
588
+ return []validationutils.ValidationOutput{}, nil
589
+ }
590
+ }
591
+
592
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
593
+
594
+ subResults := make([]validationutils.ValidationOutput, 0)
595
+ valid := true
596
+ configureDebugInfo := ""
597
+ for _, testObjMap := range scope {
598
+ validationutils.UnusedFunction(testObjMap)
599
+
600
+ attr := validationutils.GetJsonPath(testObjMap, "$.context.bap_uri", true)
601
+ validationutils.UnusedFunction(attr)
602
+
603
+ validate := validationutils.ArePresent(attr)
604
+
605
+ configureDebugInfo = `{"_NAME_":"REQUIRED_CONTEXT_BAP_URI","attr":"$.context.bap_uri","_RETURN_":"attr are present"}`
606
+
607
+ if !validate {
608
+ result := validationutils.ValidationOutput{
609
+ TestName: "REQUIRED_CONTEXT_BAP_URI",
610
+ Valid: false,
611
+ Code: 30000,
612
+ Description: `#### **REQUIRED_CONTEXT_BAP_URI**
613
+
614
+ - $.context.bap_uri must be present in the payload`,
615
+ DebugInfo: &validationutils.DebugInfo{
616
+ FedConfig: configureDebugInfo,
617
+ },
618
+ }
619
+ return []validationutils.ValidationOutput{result}, nil
620
+ }
621
+
622
+ }
623
+
624
+ result := validationutils.ValidationOutput{
625
+ TestName: "REQUIRED_CONTEXT_BAP_URI",
626
+ Valid: valid,
627
+ Code: 0,
628
+ DebugInfo: &validationutils.DebugInfo{
629
+ FedConfig: configureDebugInfo,
630
+ },
631
+ }
632
+
633
+ if valid {
634
+ result.Code = 200
635
+ } else {
636
+ result.Code = 30000
637
+ }
638
+
639
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
640
+ results = append(results, result)
641
+ results = append(results, subResults...)
642
+
643
+ return results, nil
644
+ }
645
+ var REQUIRED_CONTEXT_BAP_ID = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
646
+
647
+ if input.Config.SkipTestsDict != nil {
648
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_CONTEXT_BAP_ID"]; skip {
649
+ return []validationutils.ValidationOutput{}, nil
650
+ }
651
+ }
652
+
653
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
654
+
655
+ subResults := make([]validationutils.ValidationOutput, 0)
656
+ valid := true
657
+ configureDebugInfo := ""
658
+ for _, testObjMap := range scope {
659
+ validationutils.UnusedFunction(testObjMap)
660
+
661
+ attr := validationutils.GetJsonPath(testObjMap, "$.context.bap_id", true)
662
+ validationutils.UnusedFunction(attr)
663
+
664
+ validate := validationutils.ArePresent(attr)
665
+
666
+ configureDebugInfo = `{"_NAME_":"REQUIRED_CONTEXT_BAP_ID","attr":"$.context.bap_id","_RETURN_":"attr are present"}`
667
+
668
+ if !validate {
669
+ result := validationutils.ValidationOutput{
670
+ TestName: "REQUIRED_CONTEXT_BAP_ID",
671
+ Valid: false,
672
+ Code: 30000,
673
+ Description: `#### **REQUIRED_CONTEXT_BAP_ID**
674
+
675
+ - $.context.bap_id must be present in the payload`,
676
+ DebugInfo: &validationutils.DebugInfo{
677
+ FedConfig: configureDebugInfo,
678
+ },
679
+ }
680
+ return []validationutils.ValidationOutput{result}, nil
681
+ }
682
+
683
+ }
684
+
685
+ result := validationutils.ValidationOutput{
686
+ TestName: "REQUIRED_CONTEXT_BAP_ID",
687
+ Valid: valid,
688
+ Code: 0,
689
+ DebugInfo: &validationutils.DebugInfo{
690
+ FedConfig: configureDebugInfo,
691
+ },
692
+ }
693
+
694
+ if valid {
695
+ result.Code = 200
696
+ } else {
697
+ result.Code = 30000
698
+ }
699
+
700
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
701
+ results = append(results, result)
702
+ results = append(results, subResults...)
703
+
704
+ return results, nil
705
+ }
706
+ var REQUIRED_CONTEXT_BPP_URI = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
707
+
708
+ if input.Config.SkipTestsDict != nil {
709
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_CONTEXT_BPP_URI"]; skip {
710
+ return []validationutils.ValidationOutput{}, nil
711
+ }
712
+ }
713
+
714
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
715
+
716
+ subResults := make([]validationutils.ValidationOutput, 0)
717
+ valid := true
718
+ configureDebugInfo := ""
719
+ for _, testObjMap := range scope {
720
+ validationutils.UnusedFunction(testObjMap)
721
+
722
+ attr := validationutils.GetJsonPath(testObjMap, "$.context.bpp_uri", true)
723
+ validationutils.UnusedFunction(attr)
724
+
725
+ validate := validationutils.ArePresent(attr)
726
+
727
+ configureDebugInfo = `{"_NAME_":"REQUIRED_CONTEXT_BPP_URI","attr":"$.context.bpp_uri","_RETURN_":"attr are present"}`
728
+
729
+ if !validate {
730
+ result := validationutils.ValidationOutput{
731
+ TestName: "REQUIRED_CONTEXT_BPP_URI",
732
+ Valid: false,
733
+ Code: 30000,
734
+ Description: `#### **REQUIRED_CONTEXT_BPP_URI**
735
+
736
+ - $.context.bpp_uri must be present in the payload`,
737
+ DebugInfo: &validationutils.DebugInfo{
738
+ FedConfig: configureDebugInfo,
739
+ },
740
+ }
741
+ return []validationutils.ValidationOutput{result}, nil
742
+ }
743
+
744
+ }
745
+
746
+ result := validationutils.ValidationOutput{
747
+ TestName: "REQUIRED_CONTEXT_BPP_URI",
748
+ Valid: valid,
749
+ Code: 0,
750
+ DebugInfo: &validationutils.DebugInfo{
751
+ FedConfig: configureDebugInfo,
752
+ },
753
+ }
754
+
755
+ if valid {
756
+ result.Code = 200
757
+ } else {
758
+ result.Code = 30000
759
+ }
760
+
761
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
762
+ results = append(results, result)
763
+ results = append(results, subResults...)
764
+
765
+ return results, nil
766
+ }
767
+ var REQUIRED_CONTEXT_BPP_ID = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
768
+
769
+ if input.Config.SkipTestsDict != nil {
770
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_CONTEXT_BPP_ID"]; skip {
771
+ return []validationutils.ValidationOutput{}, nil
772
+ }
773
+ }
774
+
775
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
776
+
777
+ subResults := make([]validationutils.ValidationOutput, 0)
778
+ valid := true
779
+ configureDebugInfo := ""
780
+ for _, testObjMap := range scope {
781
+ validationutils.UnusedFunction(testObjMap)
782
+
783
+ attr := validationutils.GetJsonPath(testObjMap, "$.context.bpp_id", true)
784
+ validationutils.UnusedFunction(attr)
785
+
786
+ validate := validationutils.ArePresent(attr)
787
+
788
+ configureDebugInfo = `{"_NAME_":"REQUIRED_CONTEXT_BPP_ID","attr":"$.context.bpp_id","_RETURN_":"attr are present"}`
789
+
790
+ if !validate {
791
+ result := validationutils.ValidationOutput{
792
+ TestName: "REQUIRED_CONTEXT_BPP_ID",
793
+ Valid: false,
794
+ Code: 30000,
795
+ Description: `#### **REQUIRED_CONTEXT_BPP_ID**
796
+
797
+ - $.context.bpp_id must be present in the payload`,
798
+ DebugInfo: &validationutils.DebugInfo{
799
+ FedConfig: configureDebugInfo,
800
+ },
801
+ }
802
+ return []validationutils.ValidationOutput{result}, nil
803
+ }
804
+
805
+ }
806
+
807
+ result := validationutils.ValidationOutput{
808
+ TestName: "REQUIRED_CONTEXT_BPP_ID",
809
+ Valid: valid,
810
+ Code: 0,
811
+ DebugInfo: &validationutils.DebugInfo{
812
+ FedConfig: configureDebugInfo,
813
+ },
814
+ }
815
+
816
+ if valid {
817
+ result.Code = 200
818
+ } else {
819
+ result.Code = 30000
820
+ }
821
+
822
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
823
+ results = append(results, result)
824
+ results = append(results, subResults...)
825
+
826
+ return results, nil
827
+ }
828
+ var VALID_CONTEXT_COUNTRY_CODE = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
829
+
830
+ if input.Config.SkipTestsDict != nil {
831
+ if _, skip := input.Config.SkipTestsDict["VALID_CONTEXT_COUNTRY_CODE"]; skip {
832
+ return []validationutils.ValidationOutput{}, nil
833
+ }
834
+ }
835
+
836
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
837
+
838
+ subResults := make([]validationutils.ValidationOutput, 0)
839
+ valid := true
840
+ configureDebugInfo := ""
841
+ for _, testObjMap := range scope {
842
+ validationutils.UnusedFunction(testObjMap)
843
+
844
+ attr := validationutils.GetJsonPath(testObjMap, "$.context.country", true)
845
+ validationutils.UnusedFunction(attr)
846
+
847
+ validate := validationutils.ArePresent(attr)
848
+
849
+ configureDebugInfo = `{"_NAME_":"VALID_CONTEXT_COUNTRY_CODE","attr":"$.context.country","_RETURN_":"attr are present"}`
850
+
851
+ if !validate {
852
+ result := validationutils.ValidationOutput{
853
+ TestName: "VALID_CONTEXT_COUNTRY_CODE",
854
+ Valid: false,
855
+ Code: 30000,
856
+ Description: `#### **VALID_CONTEXT_COUNTRY_CODE**
857
+
858
+ - $.context.country must be present in the payload`,
859
+ DebugInfo: &validationutils.DebugInfo{
860
+ FedConfig: configureDebugInfo,
861
+ },
862
+ }
863
+ return []validationutils.ValidationOutput{result}, nil
864
+ }
865
+
866
+ }
867
+
868
+ result := validationutils.ValidationOutput{
869
+ TestName: "VALID_CONTEXT_COUNTRY_CODE",
870
+ Valid: valid,
871
+ Code: 0,
872
+ DebugInfo: &validationutils.DebugInfo{
873
+ FedConfig: configureDebugInfo,
874
+ },
875
+ }
876
+
877
+ if valid {
878
+ result.Code = 200
879
+ } else {
880
+ result.Code = 30000
881
+ }
882
+
883
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
884
+ results = append(results, result)
885
+ results = append(results, subResults...)
886
+
887
+ return results, nil
888
+ }
889
+
890
+ var testFunctions = validationutils.TestFunctionArray{
891
+ REQUIRED_CONTEXT_DOMAIN,
892
+ REQUIRED_CONTEXT_COUNTRY,
893
+ REQUIRED_CONTEXT_CITY,
894
+ REQUIRED_CONTEXT_TRANSACTION_ID,
895
+ REQUIRED_CONTEXT_MESSAGE_ID,
896
+ REQUIRED_CONTEXT_ACTION,
897
+ REQUIRED_CONTEXT_TIMESTAMP,
898
+ REQUIRED_CONTEXT_VERSION,
899
+ REQUIRED_CONTEXT_BAP_URI,
900
+ REQUIRED_CONTEXT_BAP_ID,
901
+ REQUIRED_CONTEXT_BPP_URI,
902
+ REQUIRED_CONTEXT_BPP_ID,
903
+ VALID_CONTEXT_COUNTRY_CODE,
904
+ }
905
+
906
+ allResults := make([]validationutils.ValidationOutput, 0)
907
+
908
+ for _, testFunc := range testFunctions {
909
+ results, err := testFunc(input)
910
+ if err != nil {
911
+ return nil, err
912
+ }
913
+ allResults = append(allResults, results...)
914
+ }
915
+
916
+ subResults = allResults
917
+ // if all subResults are valid, then valid is true
918
+ valid = true
919
+ for _, res := range subResults {
920
+ if !res.Valid {
921
+ valid = false
922
+ break
923
+ }
924
+ }
925
+
926
+ configureDebugInfo = `NESTED_TEST_OBJECT`
927
+
928
+ }
929
+
930
+ result := validationutils.ValidationOutput{
931
+ TestName: "REQUIRED_CONTEXT_FIELDS",
932
+ Valid: valid,
933
+ Code: 0,
934
+ DebugInfo: &validationutils.DebugInfo{
935
+ FedConfig: configureDebugInfo,
936
+ },
937
+ }
938
+
939
+ if valid {
940
+ result.Code = 200
941
+ } else {
942
+ result.Code = 30000
943
+ }
944
+
945
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
946
+ results = append(results, result)
947
+ results = append(results, subResults...)
948
+
949
+ return results, nil
950
+ }
951
+ var ON_ISSUE_VALIDATION_VERSION_200 = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
952
+
953
+ if input.Config.SkipTestsDict != nil {
954
+ if _, skip := input.Config.SkipTestsDict["ON_ISSUE_VALIDATION_VERSION_200"]; skip {
955
+ return []validationutils.ValidationOutput{}, nil
956
+ }
957
+ }
958
+
959
+ scope := validationutils.GetJsonPath(input.Payload, "$.message.issue.actions", true)
960
+
961
+ subResults := make([]validationutils.ValidationOutput, 0)
962
+ valid := true
963
+ configureDebugInfo := ""
964
+ for _, testObjMap := range scope {
965
+ validationutils.UnusedFunction(testObjMap)
966
+
967
+ var REQUIRED_MESSAGE_ID = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
968
+
969
+ if input.Config.SkipTestsDict != nil {
970
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_ID"]; skip {
971
+ return []validationutils.ValidationOutput{}, nil
972
+ }
973
+ }
974
+
975
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
976
+
977
+ subResults := make([]validationutils.ValidationOutput, 0)
978
+ valid := true
979
+ configureDebugInfo := ""
980
+ for _, testObjMap := range scope {
981
+ validationutils.UnusedFunction(testObjMap)
982
+
983
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.id", true)
984
+ validationutils.UnusedFunction(attr)
985
+
986
+ validate := validationutils.ArePresent(attr)
987
+
988
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_ID","attr":"$.message.issue.id","_RETURN_":"attr are present","action":["on_issue"]}`
989
+
990
+ if !validate {
991
+ result := validationutils.ValidationOutput{
992
+ TestName: "REQUIRED_MESSAGE_ID",
993
+ Valid: false,
994
+ Code: 30000,
995
+ Description: `#### **REQUIRED_MESSAGE_ID**
996
+
997
+ - $.message.issue.id must be present in the payload`,
998
+ DebugInfo: &validationutils.DebugInfo{
999
+ FedConfig: configureDebugInfo,
1000
+ },
1001
+ }
1002
+ return []validationutils.ValidationOutput{result}, nil
1003
+ }
1004
+
1005
+ }
1006
+
1007
+ result := validationutils.ValidationOutput{
1008
+ TestName: "REQUIRED_MESSAGE_ID",
1009
+ Valid: valid,
1010
+ Code: 0,
1011
+ DebugInfo: &validationutils.DebugInfo{
1012
+ FedConfig: configureDebugInfo,
1013
+ },
1014
+ }
1015
+
1016
+ if valid {
1017
+ result.Code = 200
1018
+ } else {
1019
+ result.Code = 30000
1020
+ }
1021
+
1022
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1023
+ results = append(results, result)
1024
+ results = append(results, subResults...)
1025
+
1026
+ return results, nil
1027
+ }
1028
+ var REQUIRED_MESSAGE_STATUS = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1029
+
1030
+ if input.Config.SkipTestsDict != nil {
1031
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_STATUS"]; skip {
1032
+ return []validationutils.ValidationOutput{}, nil
1033
+ }
1034
+ }
1035
+
1036
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1037
+
1038
+ subResults := make([]validationutils.ValidationOutput, 0)
1039
+ valid := true
1040
+ configureDebugInfo := ""
1041
+ for _, testObjMap := range scope {
1042
+ validationutils.UnusedFunction(testObjMap)
1043
+
1044
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.status", true)
1045
+ validationutils.UnusedFunction(attr)
1046
+ enumList := validationutils.StringSliceToInterface([]string{`OPEN`, `CLOSED`, `PROCESSING`, `RESOLVED`, `NEED_MORE_INFO`, `INFO_PROVIDED`})
1047
+ validationutils.UnusedFunction(enumList)
1048
+
1049
+ validate := ((validationutils.ArePresent(attr)) && (validationutils.AllIn(attr, enumList))) && (validationutils.AreUnique(attr))
1050
+
1051
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_STATUS","attr":"$.message.issue.status","_RETURN_":"attr are present && attr all in enumList && attr are unique","enumList":["OPEN","CLOSED","PROCESSING","RESOLVED","NEED_MORE_INFO","INFO_PROVIDED"],"action":["on_issue"]}`
1052
+
1053
+ if !validate {
1054
+ result := validationutils.ValidationOutput{
1055
+ TestName: "REQUIRED_MESSAGE_STATUS",
1056
+ Valid: false,
1057
+ Code: 30000,
1058
+ Description: `#### **REQUIRED_MESSAGE_STATUS**
1059
+
1060
+ **All of the following must be true:**
1061
+ - **All of the following must be true:**
1062
+ - $.message.issue.status must be present in the payload
1063
+ - All elements of $.message.issue.status must be in ["OPEN", "CLOSED", "PROCESSING", "RESOLVED", "NEED_MORE_INFO", "INFO_PROVIDED"]
1064
+ - All values of $.message.issue.status are unique`,
1065
+ DebugInfo: &validationutils.DebugInfo{
1066
+ FedConfig: configureDebugInfo,
1067
+ },
1068
+ }
1069
+ return []validationutils.ValidationOutput{result}, nil
1070
+ }
1071
+
1072
+ }
1073
+
1074
+ result := validationutils.ValidationOutput{
1075
+ TestName: "REQUIRED_MESSAGE_STATUS",
1076
+ Valid: valid,
1077
+ Code: 0,
1078
+ DebugInfo: &validationutils.DebugInfo{
1079
+ FedConfig: configureDebugInfo,
1080
+ },
1081
+ }
1082
+
1083
+ if valid {
1084
+ result.Code = 200
1085
+ } else {
1086
+ result.Code = 30000
1087
+ }
1088
+
1089
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1090
+ results = append(results, result)
1091
+ results = append(results, subResults...)
1092
+
1093
+ return results, nil
1094
+ }
1095
+ var REQUIRED_MESSAGE_LEVEL = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1096
+
1097
+ if input.Config.SkipTestsDict != nil {
1098
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_LEVEL"]; skip {
1099
+ return []validationutils.ValidationOutput{}, nil
1100
+ }
1101
+ }
1102
+
1103
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1104
+
1105
+ subResults := make([]validationutils.ValidationOutput, 0)
1106
+ valid := true
1107
+ configureDebugInfo := ""
1108
+ for _, testObjMap := range scope {
1109
+ validationutils.UnusedFunction(testObjMap)
1110
+
1111
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.level", true)
1112
+ validationutils.UnusedFunction(attr)
1113
+ enumList := validationutils.StringSliceToInterface([]string{`ISSUE`, `GREVIENCE`, `DISPUTE`})
1114
+ validationutils.UnusedFunction(enumList)
1115
+
1116
+ validate := (validationutils.ArePresent(attr)) && (validationutils.AllIn(attr, enumList))
1117
+
1118
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_LEVEL","attr":"$.message.issue.level","_RETURN_":"attr are present && attr all in enumList","enumList":["ISSUE","GREVIENCE","DISPUTE"],"action":["on_issue"]}`
1119
+
1120
+ if !validate {
1121
+ result := validationutils.ValidationOutput{
1122
+ TestName: "REQUIRED_MESSAGE_LEVEL",
1123
+ Valid: false,
1124
+ Code: 30000,
1125
+ Description: `#### **REQUIRED_MESSAGE_LEVEL**
1126
+
1127
+ **All of the following must be true:**
1128
+ - $.message.issue.level must be present in the payload
1129
+ - All elements of $.message.issue.level must be in ["ISSUE", "GREVIENCE", "DISPUTE"]`,
1130
+ DebugInfo: &validationutils.DebugInfo{
1131
+ FedConfig: configureDebugInfo,
1132
+ },
1133
+ }
1134
+ return []validationutils.ValidationOutput{result}, nil
1135
+ }
1136
+
1137
+ }
1138
+
1139
+ result := validationutils.ValidationOutput{
1140
+ TestName: "REQUIRED_MESSAGE_LEVEL",
1141
+ Valid: valid,
1142
+ Code: 0,
1143
+ DebugInfo: &validationutils.DebugInfo{
1144
+ FedConfig: configureDebugInfo,
1145
+ },
1146
+ }
1147
+
1148
+ if valid {
1149
+ result.Code = 200
1150
+ } else {
1151
+ result.Code = 30000
1152
+ }
1153
+
1154
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1155
+ results = append(results, result)
1156
+ results = append(results, subResults...)
1157
+
1158
+ return results, nil
1159
+ }
1160
+ var REQUIRED_MESSAGE_CREATED_AT = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1161
+
1162
+ if input.Config.SkipTestsDict != nil {
1163
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_CREATED_AT"]; skip {
1164
+ return []validationutils.ValidationOutput{}, nil
1165
+ }
1166
+ }
1167
+
1168
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1169
+
1170
+ subResults := make([]validationutils.ValidationOutput, 0)
1171
+ valid := true
1172
+ configureDebugInfo := ""
1173
+ for _, testObjMap := range scope {
1174
+ validationutils.UnusedFunction(testObjMap)
1175
+
1176
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.created_at", true)
1177
+ validationutils.UnusedFunction(attr)
1178
+
1179
+ validate := validationutils.ArePresent(attr)
1180
+
1181
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_CREATED_AT","attr":"$.message.issue.created_at","_RETURN_":"attr are present","action":["on_issue"]}`
1182
+
1183
+ if !validate {
1184
+ result := validationutils.ValidationOutput{
1185
+ TestName: "REQUIRED_MESSAGE_CREATED_AT",
1186
+ Valid: false,
1187
+ Code: 30000,
1188
+ Description: `#### **REQUIRED_MESSAGE_CREATED_AT**
1189
+
1190
+ - $.message.issue.created_at must be present in the payload`,
1191
+ DebugInfo: &validationutils.DebugInfo{
1192
+ FedConfig: configureDebugInfo,
1193
+ },
1194
+ }
1195
+ return []validationutils.ValidationOutput{result}, nil
1196
+ }
1197
+
1198
+ }
1199
+
1200
+ result := validationutils.ValidationOutput{
1201
+ TestName: "REQUIRED_MESSAGE_CREATED_AT",
1202
+ Valid: valid,
1203
+ Code: 0,
1204
+ DebugInfo: &validationutils.DebugInfo{
1205
+ FedConfig: configureDebugInfo,
1206
+ },
1207
+ }
1208
+
1209
+ if valid {
1210
+ result.Code = 200
1211
+ } else {
1212
+ result.Code = 30000
1213
+ }
1214
+
1215
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1216
+ results = append(results, result)
1217
+ results = append(results, subResults...)
1218
+
1219
+ return results, nil
1220
+ }
1221
+ var REQUIRED_MESSAGE_UPDATED_AT = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1222
+
1223
+ if input.Config.SkipTestsDict != nil {
1224
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_UPDATED_AT"]; skip {
1225
+ return []validationutils.ValidationOutput{}, nil
1226
+ }
1227
+ }
1228
+
1229
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1230
+
1231
+ subResults := make([]validationutils.ValidationOutput, 0)
1232
+ valid := true
1233
+ configureDebugInfo := ""
1234
+ for _, testObjMap := range scope {
1235
+ validationutils.UnusedFunction(testObjMap)
1236
+
1237
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.updated_at", true)
1238
+ validationutils.UnusedFunction(attr)
1239
+
1240
+ validate := validationutils.ArePresent(attr)
1241
+
1242
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_UPDATED_AT","attr":"$.message.issue.updated_at","_RETURN_":"attr are present","action":["on_issue"]}`
1243
+
1244
+ if !validate {
1245
+ result := validationutils.ValidationOutput{
1246
+ TestName: "REQUIRED_MESSAGE_UPDATED_AT",
1247
+ Valid: false,
1248
+ Code: 30000,
1249
+ Description: `#### **REQUIRED_MESSAGE_UPDATED_AT**
1250
+
1251
+ - $.message.issue.updated_at must be present in the payload`,
1252
+ DebugInfo: &validationutils.DebugInfo{
1253
+ FedConfig: configureDebugInfo,
1254
+ },
1255
+ }
1256
+ return []validationutils.ValidationOutput{result}, nil
1257
+ }
1258
+
1259
+ }
1260
+
1261
+ result := validationutils.ValidationOutput{
1262
+ TestName: "REQUIRED_MESSAGE_UPDATED_AT",
1263
+ Valid: valid,
1264
+ Code: 0,
1265
+ DebugInfo: &validationutils.DebugInfo{
1266
+ FedConfig: configureDebugInfo,
1267
+ },
1268
+ }
1269
+
1270
+ if valid {
1271
+ result.Code = 200
1272
+ } else {
1273
+ result.Code = 30000
1274
+ }
1275
+
1276
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1277
+ results = append(results, result)
1278
+ results = append(results, subResults...)
1279
+
1280
+ return results, nil
1281
+ }
1282
+ var REQUIRED_MESSAGE_REF_ID = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1283
+
1284
+ if input.Config.SkipTestsDict != nil {
1285
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_REF_ID"]; skip {
1286
+ return []validationutils.ValidationOutput{}, nil
1287
+ }
1288
+ }
1289
+
1290
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1291
+
1292
+ subResults := make([]validationutils.ValidationOutput, 0)
1293
+ valid := true
1294
+ configureDebugInfo := ""
1295
+ for _, testObjMap := range scope {
1296
+ validationutils.UnusedFunction(testObjMap)
1297
+
1298
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.refs[*].ref_id", true)
1299
+ validationutils.UnusedFunction(attr)
1300
+
1301
+ validate := validationutils.ArePresent(attr)
1302
+
1303
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_REF_ID","attr":"$.message.issue.refs[*].ref_id","_RETURN_":"attr are present","action":["on_issue"]}`
1304
+
1305
+ if !validate {
1306
+ result := validationutils.ValidationOutput{
1307
+ TestName: "REQUIRED_MESSAGE_REF_ID",
1308
+ Valid: false,
1309
+ Code: 30000,
1310
+ Description: `#### **REQUIRED_MESSAGE_REF_ID**
1311
+
1312
+ - $.message.issue.refs[*].ref_id must be present in the payload`,
1313
+ DebugInfo: &validationutils.DebugInfo{
1314
+ FedConfig: configureDebugInfo,
1315
+ },
1316
+ }
1317
+ return []validationutils.ValidationOutput{result}, nil
1318
+ }
1319
+
1320
+ }
1321
+
1322
+ result := validationutils.ValidationOutput{
1323
+ TestName: "REQUIRED_MESSAGE_REF_ID",
1324
+ Valid: valid,
1325
+ Code: 0,
1326
+ DebugInfo: &validationutils.DebugInfo{
1327
+ FedConfig: configureDebugInfo,
1328
+ },
1329
+ }
1330
+
1331
+ if valid {
1332
+ result.Code = 200
1333
+ } else {
1334
+ result.Code = 30000
1335
+ }
1336
+
1337
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1338
+ results = append(results, result)
1339
+ results = append(results, subResults...)
1340
+
1341
+ return results, nil
1342
+ }
1343
+ var REQUIRED_MESSAGE_REF_TYPE = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1344
+
1345
+ if input.Config.SkipTestsDict != nil {
1346
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_REF_TYPE"]; skip {
1347
+ return []validationutils.ValidationOutput{}, nil
1348
+ }
1349
+ }
1350
+
1351
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1352
+
1353
+ subResults := make([]validationutils.ValidationOutput, 0)
1354
+ valid := true
1355
+ configureDebugInfo := ""
1356
+ for _, testObjMap := range scope {
1357
+ validationutils.UnusedFunction(testObjMap)
1358
+
1359
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.refs[*].ref_type", true)
1360
+ validationutils.UnusedFunction(attr)
1361
+ enumList := validationutils.StringSliceToInterface([]string{`ORDER`, `ITEM`, `FULFILLMENT`, `TRANSACTION_ID`, `MESSAGE_ID`, `PROVIDER`, `COMPLAINT`, `ACTION`, `PAYMENT`, `CUSTOMER`, `AGENT`})
1362
+ validationutils.UnusedFunction(enumList)
1363
+
1364
+ validate := (validationutils.ArePresent(attr)) && (validationutils.AllIn(attr, enumList))
1365
+
1366
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_REF_TYPE","attr":"$.message.issue.refs[*].ref_type","_RETURN_":"attr are present && attr all in enumList","enumList":["ORDER","ITEM","FULFILLMENT","TRANSACTION_ID","MESSAGE_ID","PROVIDER","COMPLAINT","ACTION","PAYMENT","CUSTOMER","AGENT"],"action":["on_issue"]}`
1367
+
1368
+ if !validate {
1369
+ result := validationutils.ValidationOutput{
1370
+ TestName: "REQUIRED_MESSAGE_REF_TYPE",
1371
+ Valid: false,
1372
+ Code: 30000,
1373
+ Description: `#### **REQUIRED_MESSAGE_REF_TYPE**
1374
+
1375
+ **All of the following must be true:**
1376
+ - $.message.issue.refs[*].ref_type must be present in the payload
1377
+ - All elements of $.message.issue.refs[*].ref_type must be in ["ORDER", "ITEM", "FULFILLMENT", "TRANSACTION_ID", "MESSAGE_ID", "PROVIDER", "COMPLAINT", "ACTION", "PAYMENT", "CUSTOMER", "AGENT"]`,
1378
+ DebugInfo: &validationutils.DebugInfo{
1379
+ FedConfig: configureDebugInfo,
1380
+ },
1381
+ }
1382
+ return []validationutils.ValidationOutput{result}, nil
1383
+ }
1384
+
1385
+ }
1386
+
1387
+ result := validationutils.ValidationOutput{
1388
+ TestName: "REQUIRED_MESSAGE_REF_TYPE",
1389
+ Valid: valid,
1390
+ Code: 0,
1391
+ DebugInfo: &validationutils.DebugInfo{
1392
+ FedConfig: configureDebugInfo,
1393
+ },
1394
+ }
1395
+
1396
+ if valid {
1397
+ result.Code = 200
1398
+ } else {
1399
+ result.Code = 30000
1400
+ }
1401
+
1402
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1403
+ results = append(results, result)
1404
+ results = append(results, subResults...)
1405
+
1406
+ return results, nil
1407
+ }
1408
+ var REQUIRED_EXPECTED_RESPONSE_TIME = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1409
+
1410
+ if input.Config.SkipTestsDict != nil {
1411
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_EXPECTED_RESPONSE_TIME"]; skip {
1412
+ return []validationutils.ValidationOutput{}, nil
1413
+ }
1414
+ }
1415
+
1416
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1417
+
1418
+ subResults := make([]validationutils.ValidationOutput, 0)
1419
+ valid := true
1420
+ configureDebugInfo := ""
1421
+ for _, testObjMap := range scope {
1422
+ validationutils.UnusedFunction(testObjMap)
1423
+
1424
+ attr := validationutils.StringSliceToInterface([]string{`$.message.issue.expected_response_time.duration`})
1425
+ validationutils.UnusedFunction(attr)
1426
+
1427
+ validate := validationutils.ArePresent(attr)
1428
+
1429
+ configureDebugInfo = `{"_NAME_":"REQUIRED_EXPECTED_RESPONSE_TIME","attr":["$.message.issue.expected_response_time.duration"],"_RETURN_":"attr are present","action":["on_issue"]}`
1430
+
1431
+ if !validate {
1432
+ result := validationutils.ValidationOutput{
1433
+ TestName: "REQUIRED_EXPECTED_RESPONSE_TIME",
1434
+ Valid: false,
1435
+ Code: 30000,
1436
+ Description: `#### **REQUIRED_EXPECTED_RESPONSE_TIME**
1437
+
1438
+ - ["$.message.issue.expected_response_time.duration"] must be present in the payload`,
1439
+ DebugInfo: &validationutils.DebugInfo{
1440
+ FedConfig: configureDebugInfo,
1441
+ },
1442
+ }
1443
+ return []validationutils.ValidationOutput{result}, nil
1444
+ }
1445
+
1446
+ }
1447
+
1448
+ result := validationutils.ValidationOutput{
1449
+ TestName: "REQUIRED_EXPECTED_RESPONSE_TIME",
1450
+ Valid: valid,
1451
+ Code: 0,
1452
+ DebugInfo: &validationutils.DebugInfo{
1453
+ FedConfig: configureDebugInfo,
1454
+ },
1455
+ }
1456
+
1457
+ if valid {
1458
+ result.Code = 200
1459
+ } else {
1460
+ result.Code = 30000
1461
+ }
1462
+
1463
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1464
+ results = append(results, result)
1465
+ results = append(results, subResults...)
1466
+
1467
+ return results, nil
1468
+ }
1469
+ var REQUIRED_EXPECTED_RESOLUTION_TIME = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1470
+
1471
+ if input.Config.SkipTestsDict != nil {
1472
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_EXPECTED_RESOLUTION_TIME"]; skip {
1473
+ return []validationutils.ValidationOutput{}, nil
1474
+ }
1475
+ }
1476
+
1477
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1478
+
1479
+ subResults := make([]validationutils.ValidationOutput, 0)
1480
+ valid := true
1481
+ configureDebugInfo := ""
1482
+ for _, testObjMap := range scope {
1483
+ validationutils.UnusedFunction(testObjMap)
1484
+
1485
+ attr := validationutils.StringSliceToInterface([]string{`$.message.issue.expected_resolution_time.duration`})
1486
+ validationutils.UnusedFunction(attr)
1487
+
1488
+ validate := validationutils.ArePresent(attr)
1489
+
1490
+ configureDebugInfo = `{"_NAME_":"REQUIRED_EXPECTED_RESOLUTION_TIME","attr":["$.message.issue.expected_resolution_time.duration"],"_RETURN_":"attr are present","action":["on_issue"]}`
1491
+
1492
+ if !validate {
1493
+ result := validationutils.ValidationOutput{
1494
+ TestName: "REQUIRED_EXPECTED_RESOLUTION_TIME",
1495
+ Valid: false,
1496
+ Code: 30000,
1497
+ Description: `#### **REQUIRED_EXPECTED_RESOLUTION_TIME**
1498
+
1499
+ - ["$.message.issue.expected_resolution_time.duration"] must be present in the payload`,
1500
+ DebugInfo: &validationutils.DebugInfo{
1501
+ FedConfig: configureDebugInfo,
1502
+ },
1503
+ }
1504
+ return []validationutils.ValidationOutput{result}, nil
1505
+ }
1506
+
1507
+ }
1508
+
1509
+ result := validationutils.ValidationOutput{
1510
+ TestName: "REQUIRED_EXPECTED_RESOLUTION_TIME",
1511
+ Valid: valid,
1512
+ Code: 0,
1513
+ DebugInfo: &validationutils.DebugInfo{
1514
+ FedConfig: configureDebugInfo,
1515
+ },
1516
+ }
1517
+
1518
+ if valid {
1519
+ result.Code = 200
1520
+ } else {
1521
+ result.Code = 30000
1522
+ }
1523
+
1524
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1525
+ results = append(results, result)
1526
+ results = append(results, subResults...)
1527
+
1528
+ return results, nil
1529
+ }
1530
+ var REQUIRED_MESSAGE_ID_10 = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1531
+
1532
+ if input.Config.SkipTestsDict != nil {
1533
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_ID_10"]; skip {
1534
+ return []validationutils.ValidationOutput{}, nil
1535
+ }
1536
+ }
1537
+
1538
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1539
+
1540
+ subResults := make([]validationutils.ValidationOutput, 0)
1541
+ valid := true
1542
+ configureDebugInfo := ""
1543
+ for _, testObjMap := range scope {
1544
+ validationutils.UnusedFunction(testObjMap)
1545
+
1546
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.actors[*].id", true)
1547
+ validationutils.UnusedFunction(attr)
1548
+
1549
+ validate := validationutils.ArePresent(attr)
1550
+
1551
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_ID_10","attr":"$.message.issue.actors[*].id","_RETURN_":"attr are present","action":["on_issue"]}`
1552
+
1553
+ if !validate {
1554
+ result := validationutils.ValidationOutput{
1555
+ TestName: "REQUIRED_MESSAGE_ID_10",
1556
+ Valid: false,
1557
+ Code: 30000,
1558
+ Description: `#### **REQUIRED_MESSAGE_ID_10**
1559
+
1560
+ - $.message.issue.actors[*].id must be present in the payload`,
1561
+ DebugInfo: &validationutils.DebugInfo{
1562
+ FedConfig: configureDebugInfo,
1563
+ },
1564
+ }
1565
+ return []validationutils.ValidationOutput{result}, nil
1566
+ }
1567
+
1568
+ }
1569
+
1570
+ result := validationutils.ValidationOutput{
1571
+ TestName: "REQUIRED_MESSAGE_ID_10",
1572
+ Valid: valid,
1573
+ Code: 0,
1574
+ DebugInfo: &validationutils.DebugInfo{
1575
+ FedConfig: configureDebugInfo,
1576
+ },
1577
+ }
1578
+
1579
+ if valid {
1580
+ result.Code = 200
1581
+ } else {
1582
+ result.Code = 30000
1583
+ }
1584
+
1585
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1586
+ results = append(results, result)
1587
+ results = append(results, subResults...)
1588
+
1589
+ return results, nil
1590
+ }
1591
+ var REQUIRED_MESSAGE_TYPE = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1592
+
1593
+ if input.Config.SkipTestsDict != nil {
1594
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_TYPE"]; skip {
1595
+ return []validationutils.ValidationOutput{}, nil
1596
+ }
1597
+ }
1598
+
1599
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1600
+
1601
+ subResults := make([]validationutils.ValidationOutput, 0)
1602
+ valid := true
1603
+ configureDebugInfo := ""
1604
+ for _, testObjMap := range scope {
1605
+ validationutils.UnusedFunction(testObjMap)
1606
+
1607
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.actors[*].type", true)
1608
+ validationutils.UnusedFunction(attr)
1609
+ enumList := validationutils.StringSliceToInterface([]string{`INTERFACING_NP`, `COUNTERPARTY_NP`, `CASCADED_NP`, `PROVIDER`, `AGENT`, `CUSTOMER`, `INTERFACING_NP_GRO`, `COUNTERPARTY_NP_GRO`, `CASCADED_NP_GRO`, `CONSUMER`})
1610
+ validationutils.UnusedFunction(enumList)
1611
+
1612
+ validate := (validationutils.ArePresent(attr)) && (validationutils.AllIn(attr, enumList))
1613
+
1614
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_TYPE","attr":"$.message.issue.actors[*].type","_RETURN_":"attr are present && attr all in enumList","enumList":["INTERFACING_NP","COUNTERPARTY_NP","CASCADED_NP","PROVIDER","AGENT","CUSTOMER","INTERFACING_NP_GRO","COUNTERPARTY_NP_GRO","CASCADED_NP_GRO","CONSUMER"],"action":["on_issue"]}`
1615
+
1616
+ if !validate {
1617
+ result := validationutils.ValidationOutput{
1618
+ TestName: "REQUIRED_MESSAGE_TYPE",
1619
+ Valid: false,
1620
+ Code: 30000,
1621
+ Description: `#### **REQUIRED_MESSAGE_TYPE**
1622
+
1623
+ **All of the following must be true:**
1624
+ - $.message.issue.actors[*].type must be present in the payload
1625
+ - All elements of $.message.issue.actors[*].type must be in ["INTERFACING_NP", "COUNTERPARTY_NP", "CASCADED_NP", "PROVIDER", "AGENT", "CUSTOMER", "INTERFACING_NP_GRO", "COUNTERPARTY_NP_GRO", "CASCADED_NP_GRO", "CONSUMER"]`,
1626
+ DebugInfo: &validationutils.DebugInfo{
1627
+ FedConfig: configureDebugInfo,
1628
+ },
1629
+ }
1630
+ return []validationutils.ValidationOutput{result}, nil
1631
+ }
1632
+
1633
+ }
1634
+
1635
+ result := validationutils.ValidationOutput{
1636
+ TestName: "REQUIRED_MESSAGE_TYPE",
1637
+ Valid: valid,
1638
+ Code: 0,
1639
+ DebugInfo: &validationutils.DebugInfo{
1640
+ FedConfig: configureDebugInfo,
1641
+ },
1642
+ }
1643
+
1644
+ if valid {
1645
+ result.Code = 200
1646
+ } else {
1647
+ result.Code = 30000
1648
+ }
1649
+
1650
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1651
+ results = append(results, result)
1652
+ results = append(results, subResults...)
1653
+
1654
+ return results, nil
1655
+ }
1656
+ var REQUIRED_MESSAGE_NAME_13 = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1657
+
1658
+ if input.Config.SkipTestsDict != nil {
1659
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_NAME_13"]; skip {
1660
+ return []validationutils.ValidationOutput{}, nil
1661
+ }
1662
+ }
1663
+
1664
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1665
+
1666
+ subResults := make([]validationutils.ValidationOutput, 0)
1667
+ valid := true
1668
+ configureDebugInfo := ""
1669
+ for _, testObjMap := range scope {
1670
+ validationutils.UnusedFunction(testObjMap)
1671
+
1672
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.actors[*].info.person.name", true)
1673
+ validationutils.UnusedFunction(attr)
1674
+
1675
+ validate := validationutils.ArePresent(attr)
1676
+
1677
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_NAME_13","attr":"$.message.issue.actors[*].info.person.name","_RETURN_":"attr are present","action":["on_issue"]}`
1678
+
1679
+ if !validate {
1680
+ result := validationutils.ValidationOutput{
1681
+ TestName: "REQUIRED_MESSAGE_NAME_13",
1682
+ Valid: false,
1683
+ Code: 30000,
1684
+ Description: `#### **REQUIRED_MESSAGE_NAME_13**
1685
+
1686
+ - $.message.issue.actors[*].info.person.name must be present in the payload`,
1687
+ DebugInfo: &validationutils.DebugInfo{
1688
+ FedConfig: configureDebugInfo,
1689
+ },
1690
+ }
1691
+ return []validationutils.ValidationOutput{result}, nil
1692
+ }
1693
+
1694
+ }
1695
+
1696
+ result := validationutils.ValidationOutput{
1697
+ TestName: "REQUIRED_MESSAGE_NAME_13",
1698
+ Valid: valid,
1699
+ Code: 0,
1700
+ DebugInfo: &validationutils.DebugInfo{
1701
+ FedConfig: configureDebugInfo,
1702
+ },
1703
+ }
1704
+
1705
+ if valid {
1706
+ result.Code = 200
1707
+ } else {
1708
+ result.Code = 30000
1709
+ }
1710
+
1711
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1712
+ results = append(results, result)
1713
+ results = append(results, subResults...)
1714
+
1715
+ return results, nil
1716
+ }
1717
+ var REQUIRED_MESSAGE_PHONE = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1718
+
1719
+ if input.Config.SkipTestsDict != nil {
1720
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_PHONE"]; skip {
1721
+ return []validationutils.ValidationOutput{}, nil
1722
+ }
1723
+ }
1724
+
1725
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1726
+
1727
+ subResults := make([]validationutils.ValidationOutput, 0)
1728
+ valid := true
1729
+ configureDebugInfo := ""
1730
+ for _, testObjMap := range scope {
1731
+ validationutils.UnusedFunction(testObjMap)
1732
+
1733
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.actors[*].info.contact.phone", true)
1734
+ validationutils.UnusedFunction(attr)
1735
+
1736
+ validate := validationutils.ArePresent(attr)
1737
+
1738
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_PHONE","attr":"$.message.issue.actors[*].info.contact.phone","_RETURN_":"attr are present","action":["on_issue"]}`
1739
+
1740
+ if !validate {
1741
+ result := validationutils.ValidationOutput{
1742
+ TestName: "REQUIRED_MESSAGE_PHONE",
1743
+ Valid: false,
1744
+ Code: 30000,
1745
+ Description: `#### **REQUIRED_MESSAGE_PHONE**
1746
+
1747
+ - $.message.issue.actors[*].info.contact.phone must be present in the payload`,
1748
+ DebugInfo: &validationutils.DebugInfo{
1749
+ FedConfig: configureDebugInfo,
1750
+ },
1751
+ }
1752
+ return []validationutils.ValidationOutput{result}, nil
1753
+ }
1754
+
1755
+ }
1756
+
1757
+ result := validationutils.ValidationOutput{
1758
+ TestName: "REQUIRED_MESSAGE_PHONE",
1759
+ Valid: valid,
1760
+ Code: 0,
1761
+ DebugInfo: &validationutils.DebugInfo{
1762
+ FedConfig: configureDebugInfo,
1763
+ },
1764
+ }
1765
+
1766
+ if valid {
1767
+ result.Code = 200
1768
+ } else {
1769
+ result.Code = 30000
1770
+ }
1771
+
1772
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1773
+ results = append(results, result)
1774
+ results = append(results, subResults...)
1775
+
1776
+ return results, nil
1777
+ }
1778
+ var REQUIRED_MESSAGE_EMAIL = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1779
+
1780
+ if input.Config.SkipTestsDict != nil {
1781
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_EMAIL"]; skip {
1782
+ return []validationutils.ValidationOutput{}, nil
1783
+ }
1784
+ }
1785
+
1786
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1787
+
1788
+ subResults := make([]validationutils.ValidationOutput, 0)
1789
+ valid := true
1790
+ configureDebugInfo := ""
1791
+ for _, testObjMap := range scope {
1792
+ validationutils.UnusedFunction(testObjMap)
1793
+
1794
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.actors[*].info.contact.email", true)
1795
+ validationutils.UnusedFunction(attr)
1796
+
1797
+ validate := validationutils.ArePresent(attr)
1798
+
1799
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_EMAIL","attr":"$.message.issue.actors[*].info.contact.email","_RETURN_":"attr are present","action":["on_issue"]}`
1800
+
1801
+ if !validate {
1802
+ result := validationutils.ValidationOutput{
1803
+ TestName: "REQUIRED_MESSAGE_EMAIL",
1804
+ Valid: false,
1805
+ Code: 30000,
1806
+ Description: `#### **REQUIRED_MESSAGE_EMAIL**
1807
+
1808
+ - $.message.issue.actors[*].info.contact.email must be present in the payload`,
1809
+ DebugInfo: &validationutils.DebugInfo{
1810
+ FedConfig: configureDebugInfo,
1811
+ },
1812
+ }
1813
+ return []validationutils.ValidationOutput{result}, nil
1814
+ }
1815
+
1816
+ }
1817
+
1818
+ result := validationutils.ValidationOutput{
1819
+ TestName: "REQUIRED_MESSAGE_EMAIL",
1820
+ Valid: valid,
1821
+ Code: 0,
1822
+ DebugInfo: &validationutils.DebugInfo{
1823
+ FedConfig: configureDebugInfo,
1824
+ },
1825
+ }
1826
+
1827
+ if valid {
1828
+ result.Code = 200
1829
+ } else {
1830
+ result.Code = 30000
1831
+ }
1832
+
1833
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1834
+ results = append(results, result)
1835
+ results = append(results, subResults...)
1836
+
1837
+ return results, nil
1838
+ }
1839
+ var REQUIRED_MESSAGE_ID_25 = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1840
+
1841
+ if input.Config.SkipTestsDict != nil {
1842
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_ID_25"]; skip {
1843
+ return []validationutils.ValidationOutput{}, nil
1844
+ }
1845
+ }
1846
+
1847
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1848
+
1849
+ subResults := make([]validationutils.ValidationOutput, 0)
1850
+ valid := true
1851
+ configureDebugInfo := ""
1852
+ for _, testObjMap := range scope {
1853
+ validationutils.UnusedFunction(testObjMap)
1854
+
1855
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.actions[*].id", true)
1856
+ validationutils.UnusedFunction(attr)
1857
+
1858
+ validate := validationutils.ArePresent(attr)
1859
+
1860
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_ID_25","attr":"$.message.issue.actions[*].id","_RETURN_":"attr are present","action":["on_issue"]}`
1861
+
1862
+ if !validate {
1863
+ result := validationutils.ValidationOutput{
1864
+ TestName: "REQUIRED_MESSAGE_ID_25",
1865
+ Valid: false,
1866
+ Code: 30000,
1867
+ Description: `#### **REQUIRED_MESSAGE_ID_25**
1868
+
1869
+ - $.message.issue.actions[*].id must be present in the payload`,
1870
+ DebugInfo: &validationutils.DebugInfo{
1871
+ FedConfig: configureDebugInfo,
1872
+ },
1873
+ }
1874
+ return []validationutils.ValidationOutput{result}, nil
1875
+ }
1876
+
1877
+ }
1878
+
1879
+ result := validationutils.ValidationOutput{
1880
+ TestName: "REQUIRED_MESSAGE_ID_25",
1881
+ Valid: valid,
1882
+ Code: 0,
1883
+ DebugInfo: &validationutils.DebugInfo{
1884
+ FedConfig: configureDebugInfo,
1885
+ },
1886
+ }
1887
+
1888
+ if valid {
1889
+ result.Code = 200
1890
+ } else {
1891
+ result.Code = 30000
1892
+ }
1893
+
1894
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1895
+ results = append(results, result)
1896
+ results = append(results, subResults...)
1897
+
1898
+ return results, nil
1899
+ }
1900
+ var REQUIRED_MESSAGE_CODE_26 = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1901
+
1902
+ if input.Config.SkipTestsDict != nil {
1903
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_CODE_26"]; skip {
1904
+ return []validationutils.ValidationOutput{}, nil
1905
+ }
1906
+ }
1907
+
1908
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1909
+
1910
+ subResults := make([]validationutils.ValidationOutput, 0)
1911
+ valid := true
1912
+ configureDebugInfo := ""
1913
+ for _, testObjMap := range scope {
1914
+ validationutils.UnusedFunction(testObjMap)
1915
+
1916
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.actions[*].descriptor.code", true)
1917
+ validationutils.UnusedFunction(attr)
1918
+
1919
+ validate := validationutils.ArePresent(attr)
1920
+
1921
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_CODE_26","attr":"$.message.issue.actions[*].descriptor.code","_RETURN_":"attr are present","action":["on_issue"]}`
1922
+
1923
+ if !validate {
1924
+ result := validationutils.ValidationOutput{
1925
+ TestName: "REQUIRED_MESSAGE_CODE_26",
1926
+ Valid: false,
1927
+ Code: 30000,
1928
+ Description: `#### **REQUIRED_MESSAGE_CODE_26**
1929
+
1930
+ - $.message.issue.actions[*].descriptor.code must be present in the payload`,
1931
+ DebugInfo: &validationutils.DebugInfo{
1932
+ FedConfig: configureDebugInfo,
1933
+ },
1934
+ }
1935
+ return []validationutils.ValidationOutput{result}, nil
1936
+ }
1937
+
1938
+ }
1939
+
1940
+ result := validationutils.ValidationOutput{
1941
+ TestName: "REQUIRED_MESSAGE_CODE_26",
1942
+ Valid: valid,
1943
+ Code: 0,
1944
+ DebugInfo: &validationutils.DebugInfo{
1945
+ FedConfig: configureDebugInfo,
1946
+ },
1947
+ }
1948
+
1949
+ if valid {
1950
+ result.Code = 200
1951
+ } else {
1952
+ result.Code = 30000
1953
+ }
1954
+
1955
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1956
+ results = append(results, result)
1957
+ results = append(results, subResults...)
1958
+
1959
+ return results, nil
1960
+ }
1961
+ var REQUIRED_MESSAGE_SHORT_DESC_27 = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1962
+
1963
+ if input.Config.SkipTestsDict != nil {
1964
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_SHORT_DESC_27"]; skip {
1965
+ return []validationutils.ValidationOutput{}, nil
1966
+ }
1967
+ }
1968
+
1969
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1970
+
1971
+ subResults := make([]validationutils.ValidationOutput, 0)
1972
+ valid := true
1973
+ configureDebugInfo := ""
1974
+ for _, testObjMap := range scope {
1975
+ validationutils.UnusedFunction(testObjMap)
1976
+
1977
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.actions[*].descriptor.short_desc", true)
1978
+ validationutils.UnusedFunction(attr)
1979
+
1980
+ validate := validationutils.ArePresent(attr)
1981
+
1982
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_SHORT_DESC_27","attr":"$.message.issue.actions[*].descriptor.short_desc","_RETURN_":"attr are present","action":["on_issue"]}`
1983
+
1984
+ if !validate {
1985
+ result := validationutils.ValidationOutput{
1986
+ TestName: "REQUIRED_MESSAGE_SHORT_DESC_27",
1987
+ Valid: false,
1988
+ Code: 30000,
1989
+ Description: `#### **REQUIRED_MESSAGE_SHORT_DESC_27**
1990
+
1991
+ - $.message.issue.actions[*].descriptor.short_desc must be present in the payload`,
1992
+ DebugInfo: &validationutils.DebugInfo{
1993
+ FedConfig: configureDebugInfo,
1994
+ },
1995
+ }
1996
+ return []validationutils.ValidationOutput{result}, nil
1997
+ }
1998
+
1999
+ }
2000
+
2001
+ result := validationutils.ValidationOutput{
2002
+ TestName: "REQUIRED_MESSAGE_SHORT_DESC_27",
2003
+ Valid: valid,
2004
+ Code: 0,
2005
+ DebugInfo: &validationutils.DebugInfo{
2006
+ FedConfig: configureDebugInfo,
2007
+ },
2008
+ }
2009
+
2010
+ if valid {
2011
+ result.Code = 200
2012
+ } else {
2013
+ result.Code = 30000
2014
+ }
2015
+
2016
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
2017
+ results = append(results, result)
2018
+ results = append(results, subResults...)
2019
+
2020
+ return results, nil
2021
+ }
2022
+ var REQUIRED_MESSAGE_UPDATED_AT_28 = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
2023
+
2024
+ if input.Config.SkipTestsDict != nil {
2025
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_UPDATED_AT_28"]; skip {
2026
+ return []validationutils.ValidationOutput{}, nil
2027
+ }
2028
+ }
2029
+
2030
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
2031
+
2032
+ subResults := make([]validationutils.ValidationOutput, 0)
2033
+ valid := true
2034
+ configureDebugInfo := ""
2035
+ for _, testObjMap := range scope {
2036
+ validationutils.UnusedFunction(testObjMap)
2037
+
2038
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.actions[*].updated_at", true)
2039
+ validationutils.UnusedFunction(attr)
2040
+
2041
+ validate := validationutils.ArePresent(attr)
2042
+
2043
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_UPDATED_AT_28","attr":"$.message.issue.actions[*].updated_at","_RETURN_":"attr are present","action":["on_issue"]}`
2044
+
2045
+ if !validate {
2046
+ result := validationutils.ValidationOutput{
2047
+ TestName: "REQUIRED_MESSAGE_UPDATED_AT_28",
2048
+ Valid: false,
2049
+ Code: 30000,
2050
+ Description: `#### **REQUIRED_MESSAGE_UPDATED_AT_28**
2051
+
2052
+ - $.message.issue.actions[*].updated_at must be present in the payload`,
2053
+ DebugInfo: &validationutils.DebugInfo{
2054
+ FedConfig: configureDebugInfo,
2055
+ },
2056
+ }
2057
+ return []validationutils.ValidationOutput{result}, nil
2058
+ }
2059
+
2060
+ }
2061
+
2062
+ result := validationutils.ValidationOutput{
2063
+ TestName: "REQUIRED_MESSAGE_UPDATED_AT_28",
2064
+ Valid: valid,
2065
+ Code: 0,
2066
+ DebugInfo: &validationutils.DebugInfo{
2067
+ FedConfig: configureDebugInfo,
2068
+ },
2069
+ }
2070
+
2071
+ if valid {
2072
+ result.Code = 200
2073
+ } else {
2074
+ result.Code = 30000
2075
+ }
2076
+
2077
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
2078
+ results = append(results, result)
2079
+ results = append(results, subResults...)
2080
+
2081
+ return results, nil
2082
+ }
2083
+ var REQUIRED_MESSAGE_ACTION_BY = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
2084
+
2085
+ if input.Config.SkipTestsDict != nil {
2086
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_ACTION_BY"]; skip {
2087
+ return []validationutils.ValidationOutput{}, nil
2088
+ }
2089
+ }
2090
+
2091
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
2092
+
2093
+ subResults := make([]validationutils.ValidationOutput, 0)
2094
+ valid := true
2095
+ configureDebugInfo := ""
2096
+ for _, testObjMap := range scope {
2097
+ validationutils.UnusedFunction(testObjMap)
2098
+
2099
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.actions[*].action_by", true)
2100
+ validationutils.UnusedFunction(attr)
2101
+
2102
+ validate := validationutils.ArePresent(attr)
2103
+
2104
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_ACTION_BY","attr":"$.message.issue.actions[*].action_by","_RETURN_":"attr are present","action":["on_issue"]}`
2105
+
2106
+ if !validate {
2107
+ result := validationutils.ValidationOutput{
2108
+ TestName: "REQUIRED_MESSAGE_ACTION_BY",
2109
+ Valid: false,
2110
+ Code: 30000,
2111
+ Description: `#### **REQUIRED_MESSAGE_ACTION_BY**
2112
+
2113
+ - $.message.issue.actions[*].action_by must be present in the payload`,
2114
+ DebugInfo: &validationutils.DebugInfo{
2115
+ FedConfig: configureDebugInfo,
2116
+ },
2117
+ }
2118
+ return []validationutils.ValidationOutput{result}, nil
2119
+ }
2120
+
2121
+ }
2122
+
2123
+ result := validationutils.ValidationOutput{
2124
+ TestName: "REQUIRED_MESSAGE_ACTION_BY",
2125
+ Valid: valid,
2126
+ Code: 0,
2127
+ DebugInfo: &validationutils.DebugInfo{
2128
+ FedConfig: configureDebugInfo,
2129
+ },
2130
+ }
2131
+
2132
+ if valid {
2133
+ result.Code = 200
2134
+ } else {
2135
+ result.Code = 30000
2136
+ }
2137
+
2138
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
2139
+ results = append(results, result)
2140
+ results = append(results, subResults...)
2141
+
2142
+ return results, nil
2143
+ }
2144
+
2145
+ var testFunctions = validationutils.TestFunctionArray{
2146
+ REQUIRED_MESSAGE_ID,
2147
+ REQUIRED_MESSAGE_STATUS,
2148
+ REQUIRED_MESSAGE_LEVEL,
2149
+ REQUIRED_MESSAGE_CREATED_AT,
2150
+ REQUIRED_MESSAGE_UPDATED_AT,
2151
+ REQUIRED_MESSAGE_REF_ID,
2152
+ REQUIRED_MESSAGE_REF_TYPE,
2153
+ REQUIRED_EXPECTED_RESPONSE_TIME,
2154
+ REQUIRED_EXPECTED_RESOLUTION_TIME,
2155
+ REQUIRED_MESSAGE_ID_10,
2156
+ REQUIRED_MESSAGE_TYPE,
2157
+ REQUIRED_MESSAGE_NAME_13,
2158
+ REQUIRED_MESSAGE_PHONE,
2159
+ REQUIRED_MESSAGE_EMAIL,
2160
+ REQUIRED_MESSAGE_ID_25,
2161
+ REQUIRED_MESSAGE_CODE_26,
2162
+ REQUIRED_MESSAGE_SHORT_DESC_27,
2163
+ REQUIRED_MESSAGE_UPDATED_AT_28,
2164
+ REQUIRED_MESSAGE_ACTION_BY,
2165
+ }
2166
+
2167
+ allResults := make([]validationutils.ValidationOutput, 0)
2168
+
2169
+ for _, testFunc := range testFunctions {
2170
+ results, err := testFunc(input)
2171
+ if err != nil {
2172
+ return nil, err
2173
+ }
2174
+ allResults = append(allResults, results...)
2175
+ }
2176
+
2177
+ subResults = allResults
2178
+ // if all subResults are valid, then valid is true
2179
+ valid = true
2180
+ for _, res := range subResults {
2181
+ if !res.Valid {
2182
+ valid = false
2183
+ break
2184
+ }
2185
+ }
2186
+
2187
+ configureDebugInfo = `NESTED_TEST_OBJECT`
2188
+
2189
+ }
2190
+
2191
+ result := validationutils.ValidationOutput{
2192
+ TestName: "ON_ISSUE_VALIDATION_VERSION_200",
2193
+ Valid: valid,
2194
+ Code: 0,
2195
+ DebugInfo: &validationutils.DebugInfo{
2196
+ FedConfig: configureDebugInfo,
2197
+ },
2198
+ }
2199
+
2200
+ if valid {
2201
+ result.Code = 200
2202
+ } else {
2203
+ result.Code = 30000
2204
+ }
2205
+
2206
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
2207
+ results = append(results, result)
2208
+ results = append(results, subResults...)
2209
+
2210
+ return results, nil
2211
+ }
2212
+ var ON_ISSUE_VALIDATION_VERSION_100 = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
2213
+
2214
+ if input.Config.SkipTestsDict != nil {
2215
+ if _, skip := input.Config.SkipTestsDict["ON_ISSUE_VALIDATION_VERSION_100"]; skip {
2216
+ return []validationutils.ValidationOutput{}, nil
2217
+ }
2218
+ }
2219
+
2220
+ scope := validationutils.GetJsonPath(input.Payload, "$.message.issue.issue_actions", true)
2221
+
2222
+ subResults := make([]validationutils.ValidationOutput, 0)
2223
+ valid := true
2224
+ configureDebugInfo := ""
2225
+ for _, testObjMap := range scope {
2226
+ validationutils.UnusedFunction(testObjMap)
2227
+
2228
+ var REQUIRED_ISSUE_ID = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
2229
+
2230
+ if input.Config.SkipTestsDict != nil {
2231
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_ISSUE_ID"]; skip {
2232
+ return []validationutils.ValidationOutput{}, nil
2233
+ }
2234
+ }
2235
+
2236
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
2237
+
2238
+ subResults := make([]validationutils.ValidationOutput, 0)
2239
+ valid := true
2240
+ configureDebugInfo := ""
2241
+ for _, testObjMap := range scope {
2242
+ validationutils.UnusedFunction(testObjMap)
2243
+
2244
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.id", true)
2245
+ validationutils.UnusedFunction(attr)
2246
+
2247
+ validate := validationutils.ArePresent(attr)
2248
+
2249
+ configureDebugInfo = `{"_NAME_":"REQUIRED_ISSUE_ID","attr":"$.message.issue.id","_RETURN_":"attr are present","action":["on_issue"]}`
2250
+
2251
+ if !validate {
2252
+ result := validationutils.ValidationOutput{
2253
+ TestName: "REQUIRED_ISSUE_ID",
2254
+ Valid: false,
2255
+ Code: 30000,
2256
+ Description: `#### **REQUIRED_ISSUE_ID**
2257
+
2258
+ - $.message.issue.id must be present in the payload`,
2259
+ DebugInfo: &validationutils.DebugInfo{
2260
+ FedConfig: configureDebugInfo,
2261
+ },
2262
+ }
2263
+ return []validationutils.ValidationOutput{result}, nil
2264
+ }
2265
+
2266
+ }
2267
+
2268
+ result := validationutils.ValidationOutput{
2269
+ TestName: "REQUIRED_ISSUE_ID",
2270
+ Valid: valid,
2271
+ Code: 0,
2272
+ DebugInfo: &validationutils.DebugInfo{
2273
+ FedConfig: configureDebugInfo,
2274
+ },
2275
+ }
2276
+
2277
+ if valid {
2278
+ result.Code = 200
2279
+ } else {
2280
+ result.Code = 30000
2281
+ }
2282
+
2283
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
2284
+ results = append(results, result)
2285
+ results = append(results, subResults...)
2286
+
2287
+ return results, nil
2288
+ }
2289
+ var REQUIRED_RESPONDENT_ACTION = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
2290
+
2291
+ if input.Config.SkipTestsDict != nil {
2292
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_RESPONDENT_ACTION"]; skip {
2293
+ return []validationutils.ValidationOutput{}, nil
2294
+ }
2295
+ }
2296
+
2297
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
2298
+
2299
+ subResults := make([]validationutils.ValidationOutput, 0)
2300
+ valid := true
2301
+ configureDebugInfo := ""
2302
+ for _, testObjMap := range scope {
2303
+ validationutils.UnusedFunction(testObjMap)
2304
+
2305
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.issue_actions.respondent_actions[*].respondent_action", true)
2306
+ validationutils.UnusedFunction(attr)
2307
+ enumList := validationutils.StringSliceToInterface([]string{`OPEN`, `PROCESSING`, `RESOLVED`, `CLOSED`, `INFO_PROVIDED`, `NEED_MORE_INFO`})
2308
+ validationutils.UnusedFunction(enumList)
2309
+
2310
+ validate := (validationutils.ArePresent(attr)) && (validationutils.AllIn(attr, enumList))
2311
+
2312
+ configureDebugInfo = `{"_NAME_":"REQUIRED_RESPONDENT_ACTION","attr":"$.message.issue.issue_actions.respondent_actions[*].respondent_action","_RETURN_":"attr are present && attr all in enumList","enumList":["OPEN","PROCESSING","RESOLVED","CLOSED","INFO_PROVIDED","NEED_MORE_INFO"],"action":["on_issue"]}`
2313
+
2314
+ if !validate {
2315
+ result := validationutils.ValidationOutput{
2316
+ TestName: "REQUIRED_RESPONDENT_ACTION",
2317
+ Valid: false,
2318
+ Code: 30000,
2319
+ Description: `#### **REQUIRED_RESPONDENT_ACTION**
2320
+
2321
+ **All of the following must be true:**
2322
+ - $.message.issue.issue_actions.respondent_actions[*].respondent_action must be present in the payload
2323
+ - All elements of $.message.issue.issue_actions.respondent_actions[*].respondent_action must be in ["OPEN", "PROCESSING", "RESOLVED", "CLOSED", "INFO_PROVIDED", "NEED_MORE_INFO"]`,
2324
+ DebugInfo: &validationutils.DebugInfo{
2325
+ FedConfig: configureDebugInfo,
2326
+ },
2327
+ }
2328
+ return []validationutils.ValidationOutput{result}, nil
2329
+ }
2330
+
2331
+ }
2332
+
2333
+ result := validationutils.ValidationOutput{
2334
+ TestName: "REQUIRED_RESPONDENT_ACTION",
2335
+ Valid: valid,
2336
+ Code: 0,
2337
+ DebugInfo: &validationutils.DebugInfo{
2338
+ FedConfig: configureDebugInfo,
2339
+ },
2340
+ }
2341
+
2342
+ if valid {
2343
+ result.Code = 200
2344
+ } else {
2345
+ result.Code = 30000
2346
+ }
2347
+
2348
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
2349
+ results = append(results, result)
2350
+ results = append(results, subResults...)
2351
+
2352
+ return results, nil
2353
+ }
2354
+ var REQUIRED_RESPONDENT_SHORT_DESC = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
2355
+
2356
+ if input.Config.SkipTestsDict != nil {
2357
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_RESPONDENT_SHORT_DESC"]; skip {
2358
+ return []validationutils.ValidationOutput{}, nil
2359
+ }
2360
+ }
2361
+
2362
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
2363
+
2364
+ subResults := make([]validationutils.ValidationOutput, 0)
2365
+ valid := true
2366
+ configureDebugInfo := ""
2367
+ for _, testObjMap := range scope {
2368
+ validationutils.UnusedFunction(testObjMap)
2369
+
2370
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.issue_actions.respondent_actions[*].short_desc", true)
2371
+ validationutils.UnusedFunction(attr)
2372
+
2373
+ validate := validationutils.ArePresent(attr)
2374
+
2375
+ configureDebugInfo = `{"_NAME_":"REQUIRED_RESPONDENT_SHORT_DESC","attr":"$.message.issue.issue_actions.respondent_actions[*].short_desc","_RETURN_":"attr are present","action":["on_issue"]}`
2376
+
2377
+ if !validate {
2378
+ result := validationutils.ValidationOutput{
2379
+ TestName: "REQUIRED_RESPONDENT_SHORT_DESC",
2380
+ Valid: false,
2381
+ Code: 30000,
2382
+ Description: `#### **REQUIRED_RESPONDENT_SHORT_DESC**
2383
+
2384
+ - $.message.issue.issue_actions.respondent_actions[*].short_desc must be present in the payload`,
2385
+ DebugInfo: &validationutils.DebugInfo{
2386
+ FedConfig: configureDebugInfo,
2387
+ },
2388
+ }
2389
+ return []validationutils.ValidationOutput{result}, nil
2390
+ }
2391
+
2392
+ }
2393
+
2394
+ result := validationutils.ValidationOutput{
2395
+ TestName: "REQUIRED_RESPONDENT_SHORT_DESC",
2396
+ Valid: valid,
2397
+ Code: 0,
2398
+ DebugInfo: &validationutils.DebugInfo{
2399
+ FedConfig: configureDebugInfo,
2400
+ },
2401
+ }
2402
+
2403
+ if valid {
2404
+ result.Code = 200
2405
+ } else {
2406
+ result.Code = 30000
2407
+ }
2408
+
2409
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
2410
+ results = append(results, result)
2411
+ results = append(results, subResults...)
2412
+
2413
+ return results, nil
2414
+ }
2415
+ var REQUIRED_RESPONDENT_UPDATED_AT = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
2416
+
2417
+ if input.Config.SkipTestsDict != nil {
2418
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_RESPONDENT_UPDATED_AT"]; skip {
2419
+ return []validationutils.ValidationOutput{}, nil
2420
+ }
2421
+ }
2422
+
2423
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
2424
+
2425
+ subResults := make([]validationutils.ValidationOutput, 0)
2426
+ valid := true
2427
+ configureDebugInfo := ""
2428
+ for _, testObjMap := range scope {
2429
+ validationutils.UnusedFunction(testObjMap)
2430
+
2431
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.issue_actions.respondent_actions[*].updated_at", true)
2432
+ validationutils.UnusedFunction(attr)
2433
+
2434
+ validate := validationutils.ArePresent(attr)
2435
+
2436
+ configureDebugInfo = `{"_NAME_":"REQUIRED_RESPONDENT_UPDATED_AT","attr":"$.message.issue.issue_actions.respondent_actions[*].updated_at","_RETURN_":"attr are present","action":["on_issue"]}`
2437
+
2438
+ if !validate {
2439
+ result := validationutils.ValidationOutput{
2440
+ TestName: "REQUIRED_RESPONDENT_UPDATED_AT",
2441
+ Valid: false,
2442
+ Code: 30000,
2443
+ Description: `#### **REQUIRED_RESPONDENT_UPDATED_AT**
2444
+
2445
+ - $.message.issue.issue_actions.respondent_actions[*].updated_at must be present in the payload`,
2446
+ DebugInfo: &validationutils.DebugInfo{
2447
+ FedConfig: configureDebugInfo,
2448
+ },
2449
+ }
2450
+ return []validationutils.ValidationOutput{result}, nil
2451
+ }
2452
+
2453
+ }
2454
+
2455
+ result := validationutils.ValidationOutput{
2456
+ TestName: "REQUIRED_RESPONDENT_UPDATED_AT",
2457
+ Valid: valid,
2458
+ Code: 0,
2459
+ DebugInfo: &validationutils.DebugInfo{
2460
+ FedConfig: configureDebugInfo,
2461
+ },
2462
+ }
2463
+
2464
+ if valid {
2465
+ result.Code = 200
2466
+ } else {
2467
+ result.Code = 30000
2468
+ }
2469
+
2470
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
2471
+ results = append(results, result)
2472
+ results = append(results, subResults...)
2473
+
2474
+ return results, nil
2475
+ }
2476
+ var REQUIRED_RESPONDENT_UPDATED_BY_PERSON = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
2477
+
2478
+ if input.Config.SkipTestsDict != nil {
2479
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_RESPONDENT_UPDATED_BY_PERSON"]; skip {
2480
+ return []validationutils.ValidationOutput{}, nil
2481
+ }
2482
+ }
2483
+
2484
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
2485
+
2486
+ subResults := make([]validationutils.ValidationOutput, 0)
2487
+ valid := true
2488
+ configureDebugInfo := ""
2489
+ for _, testObjMap := range scope {
2490
+ validationutils.UnusedFunction(testObjMap)
2491
+
2492
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.issue_actions.respondent_actions[*].updated_by.person.name", true)
2493
+ validationutils.UnusedFunction(attr)
2494
+
2495
+ validate := validationutils.ArePresent(attr)
2496
+
2497
+ configureDebugInfo = `{"_NAME_":"REQUIRED_RESPONDENT_UPDATED_BY_PERSON","attr":"$.message.issue.issue_actions.respondent_actions[*].updated_by.person.name","_RETURN_":"attr are present","action":["on_issue"]}`
2498
+
2499
+ if !validate {
2500
+ result := validationutils.ValidationOutput{
2501
+ TestName: "REQUIRED_RESPONDENT_UPDATED_BY_PERSON",
2502
+ Valid: false,
2503
+ Code: 30000,
2504
+ Description: `#### **REQUIRED_RESPONDENT_UPDATED_BY_PERSON**
2505
+
2506
+ - $.message.issue.issue_actions.respondent_actions[*].updated_by.person.name must be present in the payload`,
2507
+ DebugInfo: &validationutils.DebugInfo{
2508
+ FedConfig: configureDebugInfo,
2509
+ },
2510
+ }
2511
+ return []validationutils.ValidationOutput{result}, nil
2512
+ }
2513
+
2514
+ }
2515
+
2516
+ result := validationutils.ValidationOutput{
2517
+ TestName: "REQUIRED_RESPONDENT_UPDATED_BY_PERSON",
2518
+ Valid: valid,
2519
+ Code: 0,
2520
+ DebugInfo: &validationutils.DebugInfo{
2521
+ FedConfig: configureDebugInfo,
2522
+ },
2523
+ }
2524
+
2525
+ if valid {
2526
+ result.Code = 200
2527
+ } else {
2528
+ result.Code = 30000
2529
+ }
2530
+
2531
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
2532
+ results = append(results, result)
2533
+ results = append(results, subResults...)
2534
+
2535
+ return results, nil
2536
+ }
2537
+ var REQUIRED_RESPONDENT_UPDATED_BY_ORG = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
2538
+
2539
+ if input.Config.SkipTestsDict != nil {
2540
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_RESPONDENT_UPDATED_BY_ORG"]; skip {
2541
+ return []validationutils.ValidationOutput{}, nil
2542
+ }
2543
+ }
2544
+
2545
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
2546
+
2547
+ subResults := make([]validationutils.ValidationOutput, 0)
2548
+ valid := true
2549
+ configureDebugInfo := ""
2550
+ for _, testObjMap := range scope {
2551
+ validationutils.UnusedFunction(testObjMap)
2552
+
2553
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.issue_actions.respondent_actions[*].updated_by.org.name", true)
2554
+ validationutils.UnusedFunction(attr)
2555
+
2556
+ validate := validationutils.ArePresent(attr)
2557
+
2558
+ configureDebugInfo = `{"_NAME_":"REQUIRED_RESPONDENT_UPDATED_BY_ORG","attr":"$.message.issue.issue_actions.respondent_actions[*].updated_by.org.name","_RETURN_":"attr are present","action":["on_issue"]}`
2559
+
2560
+ if !validate {
2561
+ result := validationutils.ValidationOutput{
2562
+ TestName: "REQUIRED_RESPONDENT_UPDATED_BY_ORG",
2563
+ Valid: false,
2564
+ Code: 30000,
2565
+ Description: `#### **REQUIRED_RESPONDENT_UPDATED_BY_ORG**
2566
+
2567
+ - $.message.issue.issue_actions.respondent_actions[*].updated_by.org.name must be present in the payload`,
2568
+ DebugInfo: &validationutils.DebugInfo{
2569
+ FedConfig: configureDebugInfo,
2570
+ },
2571
+ }
2572
+ return []validationutils.ValidationOutput{result}, nil
2573
+ }
2574
+
2575
+ }
2576
+
2577
+ result := validationutils.ValidationOutput{
2578
+ TestName: "REQUIRED_RESPONDENT_UPDATED_BY_ORG",
2579
+ Valid: valid,
2580
+ Code: 0,
2581
+ DebugInfo: &validationutils.DebugInfo{
2582
+ FedConfig: configureDebugInfo,
2583
+ },
2584
+ }
2585
+
2586
+ if valid {
2587
+ result.Code = 200
2588
+ } else {
2589
+ result.Code = 30000
2590
+ }
2591
+
2592
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
2593
+ results = append(results, result)
2594
+ results = append(results, subResults...)
2595
+
2596
+ return results, nil
2597
+ }
2598
+ var REQUIRED_ISSUE_CREATED_AT = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
2599
+
2600
+ if input.Config.SkipTestsDict != nil {
2601
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_ISSUE_CREATED_AT"]; skip {
2602
+ return []validationutils.ValidationOutput{}, nil
2603
+ }
2604
+ }
2605
+
2606
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
2607
+
2608
+ subResults := make([]validationutils.ValidationOutput, 0)
2609
+ valid := true
2610
+ configureDebugInfo := ""
2611
+ for _, testObjMap := range scope {
2612
+ validationutils.UnusedFunction(testObjMap)
2613
+
2614
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.created_at", true)
2615
+ validationutils.UnusedFunction(attr)
2616
+
2617
+ validate := validationutils.ArePresent(attr)
2618
+
2619
+ configureDebugInfo = `{"_NAME_":"REQUIRED_ISSUE_CREATED_AT","attr":"$.message.issue.created_at","_RETURN_":"attr are present","action":["on_issue"]}`
2620
+
2621
+ if !validate {
2622
+ result := validationutils.ValidationOutput{
2623
+ TestName: "REQUIRED_ISSUE_CREATED_AT",
2624
+ Valid: false,
2625
+ Code: 30000,
2626
+ Description: `#### **REQUIRED_ISSUE_CREATED_AT**
2627
+
2628
+ - $.message.issue.created_at must be present in the payload`,
2629
+ DebugInfo: &validationutils.DebugInfo{
2630
+ FedConfig: configureDebugInfo,
2631
+ },
2632
+ }
2633
+ return []validationutils.ValidationOutput{result}, nil
2634
+ }
2635
+
2636
+ }
2637
+
2638
+ result := validationutils.ValidationOutput{
2639
+ TestName: "REQUIRED_ISSUE_CREATED_AT",
2640
+ Valid: valid,
2641
+ Code: 0,
2642
+ DebugInfo: &validationutils.DebugInfo{
2643
+ FedConfig: configureDebugInfo,
2644
+ },
2645
+ }
2646
+
2647
+ if valid {
2648
+ result.Code = 200
2649
+ } else {
2650
+ result.Code = 30000
2651
+ }
2652
+
2653
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
2654
+ results = append(results, result)
2655
+ results = append(results, subResults...)
2656
+
2657
+ return results, nil
2658
+ }
2659
+ var REQUIRED_ISSUE_UPDATED_AT = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
2660
+
2661
+ if input.Config.SkipTestsDict != nil {
2662
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_ISSUE_UPDATED_AT"]; skip {
2663
+ return []validationutils.ValidationOutput{}, nil
2664
+ }
2665
+ }
2666
+
2667
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
2668
+
2669
+ subResults := make([]validationutils.ValidationOutput, 0)
2670
+ valid := true
2671
+ configureDebugInfo := ""
2672
+ for _, testObjMap := range scope {
2673
+ validationutils.UnusedFunction(testObjMap)
2674
+
2675
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.updated_at", true)
2676
+ validationutils.UnusedFunction(attr)
2677
+
2678
+ validate := validationutils.ArePresent(attr)
2679
+
2680
+ configureDebugInfo = `{"_NAME_":"REQUIRED_ISSUE_UPDATED_AT","attr":"$.message.issue.updated_at","_RETURN_":"attr are present","action":["on_issue"]}`
2681
+
2682
+ if !validate {
2683
+ result := validationutils.ValidationOutput{
2684
+ TestName: "REQUIRED_ISSUE_UPDATED_AT",
2685
+ Valid: false,
2686
+ Code: 30000,
2687
+ Description: `#### **REQUIRED_ISSUE_UPDATED_AT**
2688
+
2689
+ - $.message.issue.updated_at must be present in the payload`,
2690
+ DebugInfo: &validationutils.DebugInfo{
2691
+ FedConfig: configureDebugInfo,
2692
+ },
2693
+ }
2694
+ return []validationutils.ValidationOutput{result}, nil
2695
+ }
2696
+
2697
+ }
2698
+
2699
+ result := validationutils.ValidationOutput{
2700
+ TestName: "REQUIRED_ISSUE_UPDATED_AT",
2701
+ Valid: valid,
2702
+ Code: 0,
2703
+ DebugInfo: &validationutils.DebugInfo{
2704
+ FedConfig: configureDebugInfo,
2705
+ },
2706
+ }
2707
+
2708
+ if valid {
2709
+ result.Code = 200
2710
+ } else {
2711
+ result.Code = 30000
2712
+ }
2713
+
2714
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
2715
+ results = append(results, result)
2716
+ results = append(results, subResults...)
2717
+
2718
+ return results, nil
2719
+ }
2720
+
2721
+ var testFunctions = validationutils.TestFunctionArray{
2722
+ REQUIRED_ISSUE_ID,
2723
+ REQUIRED_RESPONDENT_ACTION,
2724
+ REQUIRED_RESPONDENT_SHORT_DESC,
2725
+ REQUIRED_RESPONDENT_UPDATED_AT,
2726
+ REQUIRED_RESPONDENT_UPDATED_BY_PERSON,
2727
+ REQUIRED_RESPONDENT_UPDATED_BY_ORG,
2728
+ REQUIRED_ISSUE_CREATED_AT,
2729
+ REQUIRED_ISSUE_UPDATED_AT,
2730
+ }
2731
+
2732
+ allResults := make([]validationutils.ValidationOutput, 0)
2733
+
2734
+ for _, testFunc := range testFunctions {
2735
+ results, err := testFunc(input)
2736
+ if err != nil {
2737
+ return nil, err
2738
+ }
2739
+ allResults = append(allResults, results...)
2740
+ }
2741
+
2742
+ subResults = allResults
2743
+ // if all subResults are valid, then valid is true
2744
+ valid = true
2745
+ for _, res := range subResults {
2746
+ if !res.Valid {
2747
+ valid = false
2748
+ break
2749
+ }
2750
+ }
2751
+
2752
+ configureDebugInfo = `NESTED_TEST_OBJECT`
2753
+
2754
+ }
2755
+
2756
+ result := validationutils.ValidationOutput{
2757
+ TestName: "ON_ISSUE_VALIDATION_VERSION_100",
2758
+ Valid: valid,
2759
+ Code: 0,
2760
+ DebugInfo: &validationutils.DebugInfo{
2761
+ FedConfig: configureDebugInfo,
2762
+ },
2763
+ }
2764
+
2765
+ if valid {
2766
+ result.Code = 200
2767
+ } else {
2768
+ result.Code = 30000
2769
+ }
2770
+
2771
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
2772
+ results = append(results, result)
2773
+ results = append(results, subResults...)
2774
+
2775
+ return results, nil
2776
+ }
2777
+
2778
+ var testFunctions = validationutils.TestFunctionArray{
2779
+ REQUIRED_CONTEXT_FIELDS,
2780
+ ON_ISSUE_VALIDATION_VERSION_200,
2781
+ ON_ISSUE_VALIDATION_VERSION_100,
2782
+ }
2783
+
2784
+ allResults := make([]validationutils.ValidationOutput, 0)
2785
+
2786
+ for _, testFunc := range testFunctions {
2787
+ results, err := testFunc(input)
2788
+ if err != nil {
2789
+ return nil, err
2790
+ }
2791
+ allResults = append(allResults, results...)
2792
+ }
2793
+
2794
+ subResults = allResults
2795
+ // if all subResults are valid, then valid is true
2796
+ valid = true
2797
+ for _, res := range subResults {
2798
+ if !res.Valid {
2799
+ valid = false
2800
+ break
2801
+ }
2802
+ }
2803
+
2804
+ configureDebugInfo = `NESTED_TEST_OBJECT`
2805
+
2806
+ }
2807
+
2808
+ result := validationutils.ValidationOutput{
2809
+ TestName: "On_issueValidations",
2810
+ Valid: valid,
2811
+ Code: 0,
2812
+ DebugInfo: &validationutils.DebugInfo{
2813
+ FedConfig: configureDebugInfo,
2814
+ },
2815
+ }
2816
+
2817
+ if valid {
2818
+ result.Code = 200
2819
+ } else {
2820
+ result.Code = 30000
2821
+ }
2822
+
2823
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
2824
+ results = append(results, result)
2825
+ results = append(results, subResults...)
2826
+
2827
+ return results, nil
2828
+ }