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,4868 @@
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 Issue_Tests(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
10
+ totalResults, err := 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 == "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 IssueValidations = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
65
+
66
+ if input.Config.SkipTestsDict != nil {
67
+ if _, skip := input.Config.SkipTestsDict["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 REQUIRED_CONTEXT_TTL = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
829
+
830
+ if input.Config.SkipTestsDict != nil {
831
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_CONTEXT_TTL"]; 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.ttl", true)
845
+ validationutils.UnusedFunction(attr)
846
+
847
+ validate := validationutils.ArePresent(attr)
848
+
849
+ configureDebugInfo = `{"_NAME_":"REQUIRED_CONTEXT_TTL","attr":"$.context.ttl","_RETURN_":"attr are present"}`
850
+
851
+ if !validate {
852
+ result := validationutils.ValidationOutput{
853
+ TestName: "REQUIRED_CONTEXT_TTL",
854
+ Valid: false,
855
+ Code: 30000,
856
+ Description: `#### **REQUIRED_CONTEXT_TTL**
857
+
858
+ - $.context.ttl 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: "REQUIRED_CONTEXT_TTL",
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
+ var VALID_CONTEXT_COUNTRY_CODE = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
890
+
891
+ if input.Config.SkipTestsDict != nil {
892
+ if _, skip := input.Config.SkipTestsDict["VALID_CONTEXT_COUNTRY_CODE"]; skip {
893
+ return []validationutils.ValidationOutput{}, nil
894
+ }
895
+ }
896
+
897
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
898
+
899
+ subResults := make([]validationutils.ValidationOutput, 0)
900
+ valid := true
901
+ configureDebugInfo := ""
902
+ for _, testObjMap := range scope {
903
+ validationutils.UnusedFunction(testObjMap)
904
+
905
+ attr := validationutils.GetJsonPath(testObjMap, "$.context.country", true)
906
+ validationutils.UnusedFunction(attr)
907
+
908
+ validate := validationutils.ArePresent(attr)
909
+
910
+ configureDebugInfo = `{"_NAME_":"VALID_CONTEXT_COUNTRY_CODE","attr":"$.context.country","_RETURN_":"attr are present"}`
911
+
912
+ if !validate {
913
+ result := validationutils.ValidationOutput{
914
+ TestName: "VALID_CONTEXT_COUNTRY_CODE",
915
+ Valid: false,
916
+ Code: 30000,
917
+ Description: `#### **VALID_CONTEXT_COUNTRY_CODE**
918
+
919
+ - $.context.country must be present in the payload`,
920
+ DebugInfo: &validationutils.DebugInfo{
921
+ FedConfig: configureDebugInfo,
922
+ },
923
+ }
924
+ return []validationutils.ValidationOutput{result}, nil
925
+ }
926
+
927
+ }
928
+
929
+ result := validationutils.ValidationOutput{
930
+ TestName: "VALID_CONTEXT_COUNTRY_CODE",
931
+ Valid: valid,
932
+ Code: 0,
933
+ DebugInfo: &validationutils.DebugInfo{
934
+ FedConfig: configureDebugInfo,
935
+ },
936
+ }
937
+
938
+ if valid {
939
+ result.Code = 200
940
+ } else {
941
+ result.Code = 30000
942
+ }
943
+
944
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
945
+ results = append(results, result)
946
+ results = append(results, subResults...)
947
+
948
+ return results, nil
949
+ }
950
+
951
+ var testFunctions = validationutils.TestFunctionArray{
952
+ REQUIRED_CONTEXT_DOMAIN,
953
+ REQUIRED_CONTEXT_COUNTRY,
954
+ REQUIRED_CONTEXT_CITY,
955
+ REQUIRED_CONTEXT_TRANSACTION_ID,
956
+ REQUIRED_CONTEXT_MESSAGE_ID,
957
+ REQUIRED_CONTEXT_ACTION,
958
+ REQUIRED_CONTEXT_TIMESTAMP,
959
+ REQUIRED_CONTEXT_VERSION,
960
+ REQUIRED_CONTEXT_BAP_URI,
961
+ REQUIRED_CONTEXT_BAP_ID,
962
+ REQUIRED_CONTEXT_BPP_URI,
963
+ REQUIRED_CONTEXT_BPP_ID,
964
+ REQUIRED_CONTEXT_TTL,
965
+ VALID_CONTEXT_COUNTRY_CODE,
966
+ }
967
+
968
+ allResults := make([]validationutils.ValidationOutput, 0)
969
+
970
+ for _, testFunc := range testFunctions {
971
+ results, err := testFunc(input)
972
+ if err != nil {
973
+ return nil, err
974
+ }
975
+ allResults = append(allResults, results...)
976
+ }
977
+
978
+ subResults = allResults
979
+ // if all subResults are valid, then valid is true
980
+ valid = true
981
+ for _, res := range subResults {
982
+ if !res.Valid {
983
+ valid = false
984
+ break
985
+ }
986
+ }
987
+
988
+ configureDebugInfo = `NESTED_TEST_OBJECT`
989
+
990
+ }
991
+
992
+ result := validationutils.ValidationOutput{
993
+ TestName: "REQUIRED_CONTEXT_FIELDS",
994
+ Valid: valid,
995
+ Code: 0,
996
+ DebugInfo: &validationutils.DebugInfo{
997
+ FedConfig: configureDebugInfo,
998
+ },
999
+ }
1000
+
1001
+ if valid {
1002
+ result.Code = 200
1003
+ } else {
1004
+ result.Code = 30000
1005
+ }
1006
+
1007
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1008
+ results = append(results, result)
1009
+ results = append(results, subResults...)
1010
+
1011
+ return results, nil
1012
+ }
1013
+ var ISSUE_VALIDATION_VERSION_200 = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1014
+
1015
+ if input.Config.SkipTestsDict != nil {
1016
+ if _, skip := input.Config.SkipTestsDict["ISSUE_VALIDATION_VERSION_200"]; skip {
1017
+ return []validationutils.ValidationOutput{}, nil
1018
+ }
1019
+ }
1020
+
1021
+ scope := validationutils.GetJsonPath(input.Payload, "$.message.issue.actions", true)
1022
+
1023
+ subResults := make([]validationutils.ValidationOutput, 0)
1024
+ valid := true
1025
+ configureDebugInfo := ""
1026
+ for _, testObjMap := range scope {
1027
+ validationutils.UnusedFunction(testObjMap)
1028
+
1029
+ var REQUIRED_MESSAGE_ID = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1030
+
1031
+ if input.Config.SkipTestsDict != nil {
1032
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_ID"]; skip {
1033
+ return []validationutils.ValidationOutput{}, nil
1034
+ }
1035
+ }
1036
+
1037
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1038
+
1039
+ subResults := make([]validationutils.ValidationOutput, 0)
1040
+ valid := true
1041
+ configureDebugInfo := ""
1042
+ for _, testObjMap := range scope {
1043
+ validationutils.UnusedFunction(testObjMap)
1044
+
1045
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.id", true)
1046
+ validationutils.UnusedFunction(attr)
1047
+
1048
+ validate := validationutils.ArePresent(attr)
1049
+
1050
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_ID","attr":"$.message.issue.id","_RETURN_":"attr are present","action":["issue"]}`
1051
+
1052
+ if !validate {
1053
+ result := validationutils.ValidationOutput{
1054
+ TestName: "REQUIRED_MESSAGE_ID",
1055
+ Valid: false,
1056
+ Code: 30000,
1057
+ Description: `#### **REQUIRED_MESSAGE_ID**
1058
+
1059
+ - $.message.issue.id must be present in the payload`,
1060
+ DebugInfo: &validationutils.DebugInfo{
1061
+ FedConfig: configureDebugInfo,
1062
+ },
1063
+ }
1064
+ return []validationutils.ValidationOutput{result}, nil
1065
+ }
1066
+
1067
+ }
1068
+
1069
+ result := validationutils.ValidationOutput{
1070
+ TestName: "REQUIRED_MESSAGE_ID",
1071
+ Valid: valid,
1072
+ Code: 0,
1073
+ DebugInfo: &validationutils.DebugInfo{
1074
+ FedConfig: configureDebugInfo,
1075
+ },
1076
+ }
1077
+
1078
+ if valid {
1079
+ result.Code = 200
1080
+ } else {
1081
+ result.Code = 30000
1082
+ }
1083
+
1084
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1085
+ results = append(results, result)
1086
+ results = append(results, subResults...)
1087
+
1088
+ return results, nil
1089
+ }
1090
+ var REQUIRED_MESSAGE_STATUS = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1091
+
1092
+ if input.Config.SkipTestsDict != nil {
1093
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_STATUS"]; skip {
1094
+ return []validationutils.ValidationOutput{}, nil
1095
+ }
1096
+ }
1097
+
1098
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1099
+
1100
+ subResults := make([]validationutils.ValidationOutput, 0)
1101
+ valid := true
1102
+ configureDebugInfo := ""
1103
+ for _, testObjMap := range scope {
1104
+ validationutils.UnusedFunction(testObjMap)
1105
+
1106
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.status", true)
1107
+ validationutils.UnusedFunction(attr)
1108
+ enumList := validationutils.StringSliceToInterface([]string{`OPEN`, `CLOSED`, `PROCESSING`, `RESOLVED`, `NEED_MORE_INFO`, `INFO_PROVIDED`})
1109
+ validationutils.UnusedFunction(enumList)
1110
+
1111
+ validate := ((validationutils.ArePresent(attr)) && (validationutils.AllIn(attr, enumList))) && (validationutils.AreUnique(attr))
1112
+
1113
+ 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":["issue"]}`
1114
+
1115
+ if !validate {
1116
+ result := validationutils.ValidationOutput{
1117
+ TestName: "REQUIRED_MESSAGE_STATUS",
1118
+ Valid: false,
1119
+ Code: 30000,
1120
+ Description: `#### **REQUIRED_MESSAGE_STATUS**
1121
+
1122
+ **All of the following must be true:**
1123
+ - **All of the following must be true:**
1124
+ - $.message.issue.status must be present in the payload
1125
+ - All elements of $.message.issue.status must be in ["OPEN", "CLOSED", "PROCESSING", "RESOLVED", "NEED_MORE_INFO", "INFO_PROVIDED"]
1126
+ - All values of $.message.issue.status are unique`,
1127
+ DebugInfo: &validationutils.DebugInfo{
1128
+ FedConfig: configureDebugInfo,
1129
+ },
1130
+ }
1131
+ return []validationutils.ValidationOutput{result}, nil
1132
+ }
1133
+
1134
+ }
1135
+
1136
+ result := validationutils.ValidationOutput{
1137
+ TestName: "REQUIRED_MESSAGE_STATUS",
1138
+ Valid: valid,
1139
+ Code: 0,
1140
+ DebugInfo: &validationutils.DebugInfo{
1141
+ FedConfig: configureDebugInfo,
1142
+ },
1143
+ }
1144
+
1145
+ if valid {
1146
+ result.Code = 200
1147
+ } else {
1148
+ result.Code = 30000
1149
+ }
1150
+
1151
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1152
+ results = append(results, result)
1153
+ results = append(results, subResults...)
1154
+
1155
+ return results, nil
1156
+ }
1157
+ var REQUIRED_MESSAGE_LEVEL = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1158
+
1159
+ if input.Config.SkipTestsDict != nil {
1160
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_LEVEL"]; skip {
1161
+ return []validationutils.ValidationOutput{}, nil
1162
+ }
1163
+ }
1164
+
1165
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1166
+
1167
+ subResults := make([]validationutils.ValidationOutput, 0)
1168
+ valid := true
1169
+ configureDebugInfo := ""
1170
+ for _, testObjMap := range scope {
1171
+ validationutils.UnusedFunction(testObjMap)
1172
+
1173
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.level", true)
1174
+ validationutils.UnusedFunction(attr)
1175
+ enumList := validationutils.StringSliceToInterface([]string{`ISSUE`, `GREVIENCE`, `DISPUTE`})
1176
+ validationutils.UnusedFunction(enumList)
1177
+
1178
+ validate := (validationutils.ArePresent(attr)) && (validationutils.AllIn(attr, enumList))
1179
+
1180
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_LEVEL","attr":"$.message.issue.level","_RETURN_":"attr are present && attr all in enumList","enumList":["ISSUE","GREVIENCE","DISPUTE"],"action":["issue"]}`
1181
+
1182
+ if !validate {
1183
+ result := validationutils.ValidationOutput{
1184
+ TestName: "REQUIRED_MESSAGE_LEVEL",
1185
+ Valid: false,
1186
+ Code: 30000,
1187
+ Description: `#### **REQUIRED_MESSAGE_LEVEL**
1188
+
1189
+ **All of the following must be true:**
1190
+ - $.message.issue.level must be present in the payload
1191
+ - All elements of $.message.issue.level must be in ["ISSUE", "GREVIENCE", "DISPUTE"]`,
1192
+ DebugInfo: &validationutils.DebugInfo{
1193
+ FedConfig: configureDebugInfo,
1194
+ },
1195
+ }
1196
+ return []validationutils.ValidationOutput{result}, nil
1197
+ }
1198
+
1199
+ }
1200
+
1201
+ result := validationutils.ValidationOutput{
1202
+ TestName: "REQUIRED_MESSAGE_LEVEL",
1203
+ Valid: valid,
1204
+ Code: 0,
1205
+ DebugInfo: &validationutils.DebugInfo{
1206
+ FedConfig: configureDebugInfo,
1207
+ },
1208
+ }
1209
+
1210
+ if valid {
1211
+ result.Code = 200
1212
+ } else {
1213
+ result.Code = 30000
1214
+ }
1215
+
1216
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1217
+ results = append(results, result)
1218
+ results = append(results, subResults...)
1219
+
1220
+ return results, nil
1221
+ }
1222
+ var REQUIRED_MESSAGE_CREATED_AT = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1223
+
1224
+ if input.Config.SkipTestsDict != nil {
1225
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_CREATED_AT"]; skip {
1226
+ return []validationutils.ValidationOutput{}, nil
1227
+ }
1228
+ }
1229
+
1230
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1231
+
1232
+ subResults := make([]validationutils.ValidationOutput, 0)
1233
+ valid := true
1234
+ configureDebugInfo := ""
1235
+ for _, testObjMap := range scope {
1236
+ validationutils.UnusedFunction(testObjMap)
1237
+
1238
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.created_at", true)
1239
+ validationutils.UnusedFunction(attr)
1240
+
1241
+ validate := validationutils.ArePresent(attr)
1242
+
1243
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_CREATED_AT","attr":"$.message.issue.created_at","_RETURN_":"attr are present","action":["issue"]}`
1244
+
1245
+ if !validate {
1246
+ result := validationutils.ValidationOutput{
1247
+ TestName: "REQUIRED_MESSAGE_CREATED_AT",
1248
+ Valid: false,
1249
+ Code: 30000,
1250
+ Description: `#### **REQUIRED_MESSAGE_CREATED_AT**
1251
+
1252
+ - $.message.issue.created_at must be present in the payload`,
1253
+ DebugInfo: &validationutils.DebugInfo{
1254
+ FedConfig: configureDebugInfo,
1255
+ },
1256
+ }
1257
+ return []validationutils.ValidationOutput{result}, nil
1258
+ }
1259
+
1260
+ }
1261
+
1262
+ result := validationutils.ValidationOutput{
1263
+ TestName: "REQUIRED_MESSAGE_CREATED_AT",
1264
+ Valid: valid,
1265
+ Code: 0,
1266
+ DebugInfo: &validationutils.DebugInfo{
1267
+ FedConfig: configureDebugInfo,
1268
+ },
1269
+ }
1270
+
1271
+ if valid {
1272
+ result.Code = 200
1273
+ } else {
1274
+ result.Code = 30000
1275
+ }
1276
+
1277
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1278
+ results = append(results, result)
1279
+ results = append(results, subResults...)
1280
+
1281
+ return results, nil
1282
+ }
1283
+ var REQUIRED_MESSAGE_UPDATED_AT = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1284
+
1285
+ if input.Config.SkipTestsDict != nil {
1286
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_UPDATED_AT"]; skip {
1287
+ return []validationutils.ValidationOutput{}, nil
1288
+ }
1289
+ }
1290
+
1291
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1292
+
1293
+ subResults := make([]validationutils.ValidationOutput, 0)
1294
+ valid := true
1295
+ configureDebugInfo := ""
1296
+ for _, testObjMap := range scope {
1297
+ validationutils.UnusedFunction(testObjMap)
1298
+
1299
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.updated_at", true)
1300
+ validationutils.UnusedFunction(attr)
1301
+
1302
+ validate := validationutils.ArePresent(attr)
1303
+
1304
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_UPDATED_AT","attr":"$.message.issue.updated_at","_RETURN_":"attr are present","action":["issue"]}`
1305
+
1306
+ if !validate {
1307
+ result := validationutils.ValidationOutput{
1308
+ TestName: "REQUIRED_MESSAGE_UPDATED_AT",
1309
+ Valid: false,
1310
+ Code: 30000,
1311
+ Description: `#### **REQUIRED_MESSAGE_UPDATED_AT**
1312
+
1313
+ - $.message.issue.updated_at must be present in the payload`,
1314
+ DebugInfo: &validationutils.DebugInfo{
1315
+ FedConfig: configureDebugInfo,
1316
+ },
1317
+ }
1318
+ return []validationutils.ValidationOutput{result}, nil
1319
+ }
1320
+
1321
+ }
1322
+
1323
+ result := validationutils.ValidationOutput{
1324
+ TestName: "REQUIRED_MESSAGE_UPDATED_AT",
1325
+ Valid: valid,
1326
+ Code: 0,
1327
+ DebugInfo: &validationutils.DebugInfo{
1328
+ FedConfig: configureDebugInfo,
1329
+ },
1330
+ }
1331
+
1332
+ if valid {
1333
+ result.Code = 200
1334
+ } else {
1335
+ result.Code = 30000
1336
+ }
1337
+
1338
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1339
+ results = append(results, result)
1340
+ results = append(results, subResults...)
1341
+
1342
+ return results, nil
1343
+ }
1344
+ var REQUIRED_MESSAGE_REF_ID = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1345
+
1346
+ if input.Config.SkipTestsDict != nil {
1347
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_REF_ID"]; skip {
1348
+ return []validationutils.ValidationOutput{}, nil
1349
+ }
1350
+ }
1351
+
1352
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1353
+
1354
+ subResults := make([]validationutils.ValidationOutput, 0)
1355
+ valid := true
1356
+ configureDebugInfo := ""
1357
+ for _, testObjMap := range scope {
1358
+ validationutils.UnusedFunction(testObjMap)
1359
+
1360
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.refs[*].ref_id", true)
1361
+ validationutils.UnusedFunction(attr)
1362
+
1363
+ validate := validationutils.ArePresent(attr)
1364
+
1365
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_REF_ID","attr":"$.message.issue.refs[*].ref_id","_RETURN_":"attr are present","action":["issue"]}`
1366
+
1367
+ if !validate {
1368
+ result := validationutils.ValidationOutput{
1369
+ TestName: "REQUIRED_MESSAGE_REF_ID",
1370
+ Valid: false,
1371
+ Code: 30000,
1372
+ Description: `#### **REQUIRED_MESSAGE_REF_ID**
1373
+
1374
+ - $.message.issue.refs[*].ref_id must be present in the payload`,
1375
+ DebugInfo: &validationutils.DebugInfo{
1376
+ FedConfig: configureDebugInfo,
1377
+ },
1378
+ }
1379
+ return []validationutils.ValidationOutput{result}, nil
1380
+ }
1381
+
1382
+ }
1383
+
1384
+ result := validationutils.ValidationOutput{
1385
+ TestName: "REQUIRED_MESSAGE_REF_ID",
1386
+ Valid: valid,
1387
+ Code: 0,
1388
+ DebugInfo: &validationutils.DebugInfo{
1389
+ FedConfig: configureDebugInfo,
1390
+ },
1391
+ }
1392
+
1393
+ if valid {
1394
+ result.Code = 200
1395
+ } else {
1396
+ result.Code = 30000
1397
+ }
1398
+
1399
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1400
+ results = append(results, result)
1401
+ results = append(results, subResults...)
1402
+
1403
+ return results, nil
1404
+ }
1405
+ var REQUIRED_MESSAGE_REF_TYPE = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1406
+
1407
+ if input.Config.SkipTestsDict != nil {
1408
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_REF_TYPE"]; skip {
1409
+ return []validationutils.ValidationOutput{}, nil
1410
+ }
1411
+ }
1412
+
1413
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1414
+
1415
+ subResults := make([]validationutils.ValidationOutput, 0)
1416
+ valid := true
1417
+ configureDebugInfo := ""
1418
+ for _, testObjMap := range scope {
1419
+ validationutils.UnusedFunction(testObjMap)
1420
+
1421
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.refs[*].ref_type", true)
1422
+ validationutils.UnusedFunction(attr)
1423
+ enumList := validationutils.StringSliceToInterface([]string{`ORDER`, `ITEM`, `FULFILLMENT`, `TRANSACTION_ID`, `MESSAGE_ID`, `PROVIDER`, `COMPLAINT`, `ACTION`, `PAYMENT`, `CUSTOMER`, `AGENT`})
1424
+ validationutils.UnusedFunction(enumList)
1425
+
1426
+ validate := (validationutils.ArePresent(attr)) && (validationutils.AllIn(attr, enumList))
1427
+
1428
+ 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":["issue"]}`
1429
+
1430
+ if !validate {
1431
+ result := validationutils.ValidationOutput{
1432
+ TestName: "REQUIRED_MESSAGE_REF_TYPE",
1433
+ Valid: false,
1434
+ Code: 30000,
1435
+ Description: `#### **REQUIRED_MESSAGE_REF_TYPE**
1436
+
1437
+ **All of the following must be true:**
1438
+ - $.message.issue.refs[*].ref_type must be present in the payload
1439
+ - All elements of $.message.issue.refs[*].ref_type must be in ["ORDER", "ITEM", "FULFILLMENT", "TRANSACTION_ID", "MESSAGE_ID", "PROVIDER", "COMPLAINT", "ACTION", "PAYMENT", "CUSTOMER", "AGENT"]`,
1440
+ DebugInfo: &validationutils.DebugInfo{
1441
+ FedConfig: configureDebugInfo,
1442
+ },
1443
+ }
1444
+ return []validationutils.ValidationOutput{result}, nil
1445
+ }
1446
+
1447
+ }
1448
+
1449
+ result := validationutils.ValidationOutput{
1450
+ TestName: "REQUIRED_MESSAGE_REF_TYPE",
1451
+ Valid: valid,
1452
+ Code: 0,
1453
+ DebugInfo: &validationutils.DebugInfo{
1454
+ FedConfig: configureDebugInfo,
1455
+ },
1456
+ }
1457
+
1458
+ if valid {
1459
+ result.Code = 200
1460
+ } else {
1461
+ result.Code = 30000
1462
+ }
1463
+
1464
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1465
+ results = append(results, result)
1466
+ results = append(results, subResults...)
1467
+
1468
+ return results, nil
1469
+ }
1470
+ var REQUIRED_MESSAGE_ID_10 = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1471
+
1472
+ if input.Config.SkipTestsDict != nil {
1473
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_ID_10"]; skip {
1474
+ return []validationutils.ValidationOutput{}, nil
1475
+ }
1476
+ }
1477
+
1478
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1479
+
1480
+ subResults := make([]validationutils.ValidationOutput, 0)
1481
+ valid := true
1482
+ configureDebugInfo := ""
1483
+ for _, testObjMap := range scope {
1484
+ validationutils.UnusedFunction(testObjMap)
1485
+
1486
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.actors[*].id", true)
1487
+ validationutils.UnusedFunction(attr)
1488
+
1489
+ validate := validationutils.ArePresent(attr)
1490
+
1491
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_ID_10","attr":"$.message.issue.actors[*].id","_RETURN_":"attr are present","action":["issue"]}`
1492
+
1493
+ if !validate {
1494
+ result := validationutils.ValidationOutput{
1495
+ TestName: "REQUIRED_MESSAGE_ID_10",
1496
+ Valid: false,
1497
+ Code: 30000,
1498
+ Description: `#### **REQUIRED_MESSAGE_ID_10**
1499
+
1500
+ - $.message.issue.actors[*].id must be present in the payload`,
1501
+ DebugInfo: &validationutils.DebugInfo{
1502
+ FedConfig: configureDebugInfo,
1503
+ },
1504
+ }
1505
+ return []validationutils.ValidationOutput{result}, nil
1506
+ }
1507
+
1508
+ }
1509
+
1510
+ result := validationutils.ValidationOutput{
1511
+ TestName: "REQUIRED_MESSAGE_ID_10",
1512
+ Valid: valid,
1513
+ Code: 0,
1514
+ DebugInfo: &validationutils.DebugInfo{
1515
+ FedConfig: configureDebugInfo,
1516
+ },
1517
+ }
1518
+
1519
+ if valid {
1520
+ result.Code = 200
1521
+ } else {
1522
+ result.Code = 30000
1523
+ }
1524
+
1525
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1526
+ results = append(results, result)
1527
+ results = append(results, subResults...)
1528
+
1529
+ return results, nil
1530
+ }
1531
+ var REQUIRED_MESSAGE_TYPE = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1532
+
1533
+ if input.Config.SkipTestsDict != nil {
1534
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_TYPE"]; skip {
1535
+ return []validationutils.ValidationOutput{}, nil
1536
+ }
1537
+ }
1538
+
1539
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1540
+
1541
+ subResults := make([]validationutils.ValidationOutput, 0)
1542
+ valid := true
1543
+ configureDebugInfo := ""
1544
+ for _, testObjMap := range scope {
1545
+ validationutils.UnusedFunction(testObjMap)
1546
+
1547
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.actors[*].type", true)
1548
+ validationutils.UnusedFunction(attr)
1549
+ enumList := validationutils.StringSliceToInterface([]string{`INTERFACING_NP`, `COUNTERPARTY_NP`, `CASCADED_NP`, `PROVIDER`, `AGENT`, `CUSTOMER`, `INTERFACING_NP_GRO`, `COUNTERPARTY_NP_GRO`, `CASCADED_NP_GRO`, `CONSUMER`})
1550
+ validationutils.UnusedFunction(enumList)
1551
+
1552
+ validate := (validationutils.ArePresent(attr)) && (validationutils.AllIn(attr, enumList))
1553
+
1554
+ 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":["issue"]}`
1555
+
1556
+ if !validate {
1557
+ result := validationutils.ValidationOutput{
1558
+ TestName: "REQUIRED_MESSAGE_TYPE",
1559
+ Valid: false,
1560
+ Code: 30000,
1561
+ Description: `#### **REQUIRED_MESSAGE_TYPE**
1562
+
1563
+ **All of the following must be true:**
1564
+ - $.message.issue.actors[*].type must be present in the payload
1565
+ - 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"]`,
1566
+ DebugInfo: &validationutils.DebugInfo{
1567
+ FedConfig: configureDebugInfo,
1568
+ },
1569
+ }
1570
+ return []validationutils.ValidationOutput{result}, nil
1571
+ }
1572
+
1573
+ }
1574
+
1575
+ result := validationutils.ValidationOutput{
1576
+ TestName: "REQUIRED_MESSAGE_TYPE",
1577
+ Valid: valid,
1578
+ Code: 0,
1579
+ DebugInfo: &validationutils.DebugInfo{
1580
+ FedConfig: configureDebugInfo,
1581
+ },
1582
+ }
1583
+
1584
+ if valid {
1585
+ result.Code = 200
1586
+ } else {
1587
+ result.Code = 30000
1588
+ }
1589
+
1590
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1591
+ results = append(results, result)
1592
+ results = append(results, subResults...)
1593
+
1594
+ return results, nil
1595
+ }
1596
+ var REQUIRED_MESSAGE_NAME = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1597
+
1598
+ if input.Config.SkipTestsDict != nil {
1599
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_NAME"]; skip {
1600
+ return []validationutils.ValidationOutput{}, nil
1601
+ }
1602
+ }
1603
+
1604
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1605
+
1606
+ subResults := make([]validationutils.ValidationOutput, 0)
1607
+ valid := true
1608
+ configureDebugInfo := ""
1609
+ for _, testObjMap := range scope {
1610
+ validationutils.UnusedFunction(testObjMap)
1611
+
1612
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.actors[*].info.person.name", true)
1613
+ validationutils.UnusedFunction(attr)
1614
+
1615
+ validate := validationutils.ArePresent(attr)
1616
+
1617
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_NAME","attr":"$.message.issue.actors[*].info.person.name","_RETURN_":"attr are present","action":["issue"]}`
1618
+
1619
+ if !validate {
1620
+ result := validationutils.ValidationOutput{
1621
+ TestName: "REQUIRED_MESSAGE_NAME",
1622
+ Valid: false,
1623
+ Code: 30000,
1624
+ Description: `#### **REQUIRED_MESSAGE_NAME**
1625
+
1626
+ - $.message.issue.actors[*].info.person.name must be present in the payload`,
1627
+ DebugInfo: &validationutils.DebugInfo{
1628
+ FedConfig: configureDebugInfo,
1629
+ },
1630
+ }
1631
+ return []validationutils.ValidationOutput{result}, nil
1632
+ }
1633
+
1634
+ }
1635
+
1636
+ result := validationutils.ValidationOutput{
1637
+ TestName: "REQUIRED_MESSAGE_NAME",
1638
+ Valid: valid,
1639
+ Code: 0,
1640
+ DebugInfo: &validationutils.DebugInfo{
1641
+ FedConfig: configureDebugInfo,
1642
+ },
1643
+ }
1644
+
1645
+ if valid {
1646
+ result.Code = 200
1647
+ } else {
1648
+ result.Code = 30000
1649
+ }
1650
+
1651
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1652
+ results = append(results, result)
1653
+ results = append(results, subResults...)
1654
+
1655
+ return results, nil
1656
+ }
1657
+ var REQUIRED_MESSAGE_NAME_13 = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1658
+
1659
+ if input.Config.SkipTestsDict != nil {
1660
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_NAME_13"]; skip {
1661
+ return []validationutils.ValidationOutput{}, nil
1662
+ }
1663
+ }
1664
+
1665
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1666
+
1667
+ subResults := make([]validationutils.ValidationOutput, 0)
1668
+ valid := true
1669
+ configureDebugInfo := ""
1670
+ for _, testObjMap := range scope {
1671
+ validationutils.UnusedFunction(testObjMap)
1672
+
1673
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.actors[*].info.person.name", true)
1674
+ validationutils.UnusedFunction(attr)
1675
+
1676
+ validate := validationutils.ArePresent(attr)
1677
+
1678
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_NAME_13","attr":"$.message.issue.actors[*].info.person.name","_RETURN_":"attr are present","action":["issue"]}`
1679
+
1680
+ if !validate {
1681
+ result := validationutils.ValidationOutput{
1682
+ TestName: "REQUIRED_MESSAGE_NAME_13",
1683
+ Valid: false,
1684
+ Code: 30000,
1685
+ Description: `#### **REQUIRED_MESSAGE_NAME_13**
1686
+
1687
+ - $.message.issue.actors[*].info.person.name must be present in the payload`,
1688
+ DebugInfo: &validationutils.DebugInfo{
1689
+ FedConfig: configureDebugInfo,
1690
+ },
1691
+ }
1692
+ return []validationutils.ValidationOutput{result}, nil
1693
+ }
1694
+
1695
+ }
1696
+
1697
+ result := validationutils.ValidationOutput{
1698
+ TestName: "REQUIRED_MESSAGE_NAME_13",
1699
+ Valid: valid,
1700
+ Code: 0,
1701
+ DebugInfo: &validationutils.DebugInfo{
1702
+ FedConfig: configureDebugInfo,
1703
+ },
1704
+ }
1705
+
1706
+ if valid {
1707
+ result.Code = 200
1708
+ } else {
1709
+ result.Code = 30000
1710
+ }
1711
+
1712
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1713
+ results = append(results, result)
1714
+ results = append(results, subResults...)
1715
+
1716
+ return results, nil
1717
+ }
1718
+ var REQUIRED_MESSAGE_PHONE = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1719
+
1720
+ if input.Config.SkipTestsDict != nil {
1721
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_PHONE"]; skip {
1722
+ return []validationutils.ValidationOutput{}, nil
1723
+ }
1724
+ }
1725
+
1726
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1727
+
1728
+ subResults := make([]validationutils.ValidationOutput, 0)
1729
+ valid := true
1730
+ configureDebugInfo := ""
1731
+ for _, testObjMap := range scope {
1732
+ validationutils.UnusedFunction(testObjMap)
1733
+
1734
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.actors[*].info.contact.phone", true)
1735
+ validationutils.UnusedFunction(attr)
1736
+
1737
+ validate := validationutils.ArePresent(attr)
1738
+
1739
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_PHONE","attr":"$.message.issue.actors[*].info.contact.phone","_RETURN_":"attr are present","action":["issue"]}`
1740
+
1741
+ if !validate {
1742
+ result := validationutils.ValidationOutput{
1743
+ TestName: "REQUIRED_MESSAGE_PHONE",
1744
+ Valid: false,
1745
+ Code: 30000,
1746
+ Description: `#### **REQUIRED_MESSAGE_PHONE**
1747
+
1748
+ - $.message.issue.actors[*].info.contact.phone must be present in the payload`,
1749
+ DebugInfo: &validationutils.DebugInfo{
1750
+ FedConfig: configureDebugInfo,
1751
+ },
1752
+ }
1753
+ return []validationutils.ValidationOutput{result}, nil
1754
+ }
1755
+
1756
+ }
1757
+
1758
+ result := validationutils.ValidationOutput{
1759
+ TestName: "REQUIRED_MESSAGE_PHONE",
1760
+ Valid: valid,
1761
+ Code: 0,
1762
+ DebugInfo: &validationutils.DebugInfo{
1763
+ FedConfig: configureDebugInfo,
1764
+ },
1765
+ }
1766
+
1767
+ if valid {
1768
+ result.Code = 200
1769
+ } else {
1770
+ result.Code = 30000
1771
+ }
1772
+
1773
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1774
+ results = append(results, result)
1775
+ results = append(results, subResults...)
1776
+
1777
+ return results, nil
1778
+ }
1779
+ var REQUIRED_MESSAGE_EMAIL = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1780
+
1781
+ if input.Config.SkipTestsDict != nil {
1782
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_EMAIL"]; skip {
1783
+ return []validationutils.ValidationOutput{}, nil
1784
+ }
1785
+ }
1786
+
1787
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1788
+
1789
+ subResults := make([]validationutils.ValidationOutput, 0)
1790
+ valid := true
1791
+ configureDebugInfo := ""
1792
+ for _, testObjMap := range scope {
1793
+ validationutils.UnusedFunction(testObjMap)
1794
+
1795
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.actors[*].info.contact.email", true)
1796
+ validationutils.UnusedFunction(attr)
1797
+
1798
+ validate := validationutils.ArePresent(attr)
1799
+
1800
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_EMAIL","attr":"$.message.issue.actors[*].info.contact.email","_RETURN_":"attr are present","action":["issue"]}`
1801
+
1802
+ if !validate {
1803
+ result := validationutils.ValidationOutput{
1804
+ TestName: "REQUIRED_MESSAGE_EMAIL",
1805
+ Valid: false,
1806
+ Code: 30000,
1807
+ Description: `#### **REQUIRED_MESSAGE_EMAIL**
1808
+
1809
+ - $.message.issue.actors[*].info.contact.email must be present in the payload`,
1810
+ DebugInfo: &validationutils.DebugInfo{
1811
+ FedConfig: configureDebugInfo,
1812
+ },
1813
+ }
1814
+ return []validationutils.ValidationOutput{result}, nil
1815
+ }
1816
+
1817
+ }
1818
+
1819
+ result := validationutils.ValidationOutput{
1820
+ TestName: "REQUIRED_MESSAGE_EMAIL",
1821
+ Valid: valid,
1822
+ Code: 0,
1823
+ DebugInfo: &validationutils.DebugInfo{
1824
+ FedConfig: configureDebugInfo,
1825
+ },
1826
+ }
1827
+
1828
+ if valid {
1829
+ result.Code = 200
1830
+ } else {
1831
+ result.Code = 30000
1832
+ }
1833
+
1834
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1835
+ results = append(results, result)
1836
+ results = append(results, subResults...)
1837
+
1838
+ return results, nil
1839
+ }
1840
+ var REQUIRED_MESSAGE_SOURCE_ID = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1841
+
1842
+ if input.Config.SkipTestsDict != nil {
1843
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_SOURCE_ID"]; skip {
1844
+ return []validationutils.ValidationOutput{}, nil
1845
+ }
1846
+ }
1847
+
1848
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1849
+
1850
+ subResults := make([]validationutils.ValidationOutput, 0)
1851
+ valid := true
1852
+ configureDebugInfo := ""
1853
+ for _, testObjMap := range scope {
1854
+ validationutils.UnusedFunction(testObjMap)
1855
+
1856
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.source_id", true)
1857
+ validationutils.UnusedFunction(attr)
1858
+
1859
+ validate := validationutils.ArePresent(attr)
1860
+
1861
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_SOURCE_ID","attr":"$.message.issue.source_id","_RETURN_":"attr are present","action":["issue"]}`
1862
+
1863
+ if !validate {
1864
+ result := validationutils.ValidationOutput{
1865
+ TestName: "REQUIRED_MESSAGE_SOURCE_ID",
1866
+ Valid: false,
1867
+ Code: 30000,
1868
+ Description: `#### **REQUIRED_MESSAGE_SOURCE_ID**
1869
+
1870
+ - $.message.issue.source_id must be present in the payload`,
1871
+ DebugInfo: &validationutils.DebugInfo{
1872
+ FedConfig: configureDebugInfo,
1873
+ },
1874
+ }
1875
+ return []validationutils.ValidationOutput{result}, nil
1876
+ }
1877
+
1878
+ }
1879
+
1880
+ result := validationutils.ValidationOutput{
1881
+ TestName: "REQUIRED_MESSAGE_SOURCE_ID",
1882
+ Valid: valid,
1883
+ Code: 0,
1884
+ DebugInfo: &validationutils.DebugInfo{
1885
+ FedConfig: configureDebugInfo,
1886
+ },
1887
+ }
1888
+
1889
+ if valid {
1890
+ result.Code = 200
1891
+ } else {
1892
+ result.Code = 30000
1893
+ }
1894
+
1895
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1896
+ results = append(results, result)
1897
+ results = append(results, subResults...)
1898
+
1899
+ return results, nil
1900
+ }
1901
+ var REQUIRED_MESSAGE_CODE = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1902
+
1903
+ if input.Config.SkipTestsDict != nil {
1904
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_CODE"]; skip {
1905
+ return []validationutils.ValidationOutput{}, nil
1906
+ }
1907
+ }
1908
+
1909
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1910
+
1911
+ subResults := make([]validationutils.ValidationOutput, 0)
1912
+ valid := true
1913
+ configureDebugInfo := ""
1914
+ for _, testObjMap := range scope {
1915
+ validationutils.UnusedFunction(testObjMap)
1916
+
1917
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.descriptor.code", true)
1918
+ validationutils.UnusedFunction(attr)
1919
+
1920
+ validate := validationutils.ArePresent(attr)
1921
+
1922
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_CODE","attr":"$.message.issue.descriptor.code","_RETURN_":"attr are present","action":["issue"]}`
1923
+
1924
+ if !validate {
1925
+ result := validationutils.ValidationOutput{
1926
+ TestName: "REQUIRED_MESSAGE_CODE",
1927
+ Valid: false,
1928
+ Code: 30000,
1929
+ Description: `#### **REQUIRED_MESSAGE_CODE**
1930
+
1931
+ - $.message.issue.descriptor.code must be present in the payload`,
1932
+ DebugInfo: &validationutils.DebugInfo{
1933
+ FedConfig: configureDebugInfo,
1934
+ },
1935
+ }
1936
+ return []validationutils.ValidationOutput{result}, nil
1937
+ }
1938
+
1939
+ }
1940
+
1941
+ result := validationutils.ValidationOutput{
1942
+ TestName: "REQUIRED_MESSAGE_CODE",
1943
+ Valid: valid,
1944
+ Code: 0,
1945
+ DebugInfo: &validationutils.DebugInfo{
1946
+ FedConfig: configureDebugInfo,
1947
+ },
1948
+ }
1949
+
1950
+ if valid {
1951
+ result.Code = 200
1952
+ } else {
1953
+ result.Code = 30000
1954
+ }
1955
+
1956
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1957
+ results = append(results, result)
1958
+ results = append(results, subResults...)
1959
+
1960
+ return results, nil
1961
+ }
1962
+ var REQUIRED_MESSAGE_SHORT_DESC = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1963
+
1964
+ if input.Config.SkipTestsDict != nil {
1965
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_SHORT_DESC"]; skip {
1966
+ return []validationutils.ValidationOutput{}, nil
1967
+ }
1968
+ }
1969
+
1970
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1971
+
1972
+ subResults := make([]validationutils.ValidationOutput, 0)
1973
+ valid := true
1974
+ configureDebugInfo := ""
1975
+ for _, testObjMap := range scope {
1976
+ validationutils.UnusedFunction(testObjMap)
1977
+
1978
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.descriptor.short_desc", true)
1979
+ validationutils.UnusedFunction(attr)
1980
+
1981
+ validate := validationutils.ArePresent(attr)
1982
+
1983
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_SHORT_DESC","attr":"$.message.issue.descriptor.short_desc","_RETURN_":"attr are present","action":["issue"]}`
1984
+
1985
+ if !validate {
1986
+ result := validationutils.ValidationOutput{
1987
+ TestName: "REQUIRED_MESSAGE_SHORT_DESC",
1988
+ Valid: false,
1989
+ Code: 30000,
1990
+ Description: `#### **REQUIRED_MESSAGE_SHORT_DESC**
1991
+
1992
+ - $.message.issue.descriptor.short_desc must be present in the payload`,
1993
+ DebugInfo: &validationutils.DebugInfo{
1994
+ FedConfig: configureDebugInfo,
1995
+ },
1996
+ }
1997
+ return []validationutils.ValidationOutput{result}, nil
1998
+ }
1999
+
2000
+ }
2001
+
2002
+ result := validationutils.ValidationOutput{
2003
+ TestName: "REQUIRED_MESSAGE_SHORT_DESC",
2004
+ Valid: valid,
2005
+ Code: 0,
2006
+ DebugInfo: &validationutils.DebugInfo{
2007
+ FedConfig: configureDebugInfo,
2008
+ },
2009
+ }
2010
+
2011
+ if valid {
2012
+ result.Code = 200
2013
+ } else {
2014
+ result.Code = 30000
2015
+ }
2016
+
2017
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
2018
+ results = append(results, result)
2019
+ results = append(results, subResults...)
2020
+
2021
+ return results, nil
2022
+ }
2023
+ var REQUIRED_MESSAGE_LONG_DESC = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
2024
+
2025
+ if input.Config.SkipTestsDict != nil {
2026
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_LONG_DESC"]; skip {
2027
+ return []validationutils.ValidationOutput{}, nil
2028
+ }
2029
+ }
2030
+
2031
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
2032
+
2033
+ subResults := make([]validationutils.ValidationOutput, 0)
2034
+ valid := true
2035
+ configureDebugInfo := ""
2036
+ for _, testObjMap := range scope {
2037
+ validationutils.UnusedFunction(testObjMap)
2038
+
2039
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.descriptor.long_desc", true)
2040
+ validationutils.UnusedFunction(attr)
2041
+
2042
+ validate := validationutils.ArePresent(attr)
2043
+
2044
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_LONG_DESC","attr":"$.message.issue.descriptor.long_desc","_RETURN_":"attr are present","action":["issue"]}`
2045
+
2046
+ if !validate {
2047
+ result := validationutils.ValidationOutput{
2048
+ TestName: "REQUIRED_MESSAGE_LONG_DESC",
2049
+ Valid: false,
2050
+ Code: 30000,
2051
+ Description: `#### **REQUIRED_MESSAGE_LONG_DESC**
2052
+
2053
+ - $.message.issue.descriptor.long_desc must be present in the payload`,
2054
+ DebugInfo: &validationutils.DebugInfo{
2055
+ FedConfig: configureDebugInfo,
2056
+ },
2057
+ }
2058
+ return []validationutils.ValidationOutput{result}, nil
2059
+ }
2060
+
2061
+ }
2062
+
2063
+ result := validationutils.ValidationOutput{
2064
+ TestName: "REQUIRED_MESSAGE_LONG_DESC",
2065
+ Valid: valid,
2066
+ Code: 0,
2067
+ DebugInfo: &validationutils.DebugInfo{
2068
+ FedConfig: configureDebugInfo,
2069
+ },
2070
+ }
2071
+
2072
+ if valid {
2073
+ result.Code = 200
2074
+ } else {
2075
+ result.Code = 30000
2076
+ }
2077
+
2078
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
2079
+ results = append(results, result)
2080
+ results = append(results, subResults...)
2081
+
2082
+ return results, nil
2083
+ }
2084
+ var REQUIRED_MESSAGE_URL = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
2085
+
2086
+ if input.Config.SkipTestsDict != nil {
2087
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_URL"]; skip {
2088
+ return []validationutils.ValidationOutput{}, nil
2089
+ }
2090
+ }
2091
+
2092
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
2093
+
2094
+ subResults := make([]validationutils.ValidationOutput, 0)
2095
+ valid := true
2096
+ configureDebugInfo := ""
2097
+ for _, testObjMap := range scope {
2098
+ validationutils.UnusedFunction(testObjMap)
2099
+
2100
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.descriptor.additional_desc.url", true)
2101
+ validationutils.UnusedFunction(attr)
2102
+
2103
+ validate := validationutils.ArePresent(attr)
2104
+
2105
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_URL","attr":"$.message.issue.descriptor.additional_desc.url","_RETURN_":"attr are present","action":["issue"]}`
2106
+
2107
+ if !validate {
2108
+ result := validationutils.ValidationOutput{
2109
+ TestName: "REQUIRED_MESSAGE_URL",
2110
+ Valid: false,
2111
+ Code: 30000,
2112
+ Description: `#### **REQUIRED_MESSAGE_URL**
2113
+
2114
+ - $.message.issue.descriptor.additional_desc.url must be present in the payload`,
2115
+ DebugInfo: &validationutils.DebugInfo{
2116
+ FedConfig: configureDebugInfo,
2117
+ },
2118
+ }
2119
+ return []validationutils.ValidationOutput{result}, nil
2120
+ }
2121
+
2122
+ }
2123
+
2124
+ result := validationutils.ValidationOutput{
2125
+ TestName: "REQUIRED_MESSAGE_URL",
2126
+ Valid: valid,
2127
+ Code: 0,
2128
+ DebugInfo: &validationutils.DebugInfo{
2129
+ FedConfig: configureDebugInfo,
2130
+ },
2131
+ }
2132
+
2133
+ if valid {
2134
+ result.Code = 200
2135
+ } else {
2136
+ result.Code = 30000
2137
+ }
2138
+
2139
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
2140
+ results = append(results, result)
2141
+ results = append(results, subResults...)
2142
+
2143
+ return results, nil
2144
+ }
2145
+ var REQUIRED_MESSAGE_CONTENT_TYPE = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
2146
+
2147
+ if input.Config.SkipTestsDict != nil {
2148
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_CONTENT_TYPE"]; skip {
2149
+ return []validationutils.ValidationOutput{}, nil
2150
+ }
2151
+ }
2152
+
2153
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
2154
+
2155
+ subResults := make([]validationutils.ValidationOutput, 0)
2156
+ valid := true
2157
+ configureDebugInfo := ""
2158
+ for _, testObjMap := range scope {
2159
+ validationutils.UnusedFunction(testObjMap)
2160
+
2161
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.descriptor.additional_desc.content_type", true)
2162
+ validationutils.UnusedFunction(attr)
2163
+
2164
+ validate := validationutils.ArePresent(attr)
2165
+
2166
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_CONTENT_TYPE","attr":"$.message.issue.descriptor.additional_desc.content_type","_RETURN_":"attr are present","action":["issue"]}`
2167
+
2168
+ if !validate {
2169
+ result := validationutils.ValidationOutput{
2170
+ TestName: "REQUIRED_MESSAGE_CONTENT_TYPE",
2171
+ Valid: false,
2172
+ Code: 30000,
2173
+ Description: `#### **REQUIRED_MESSAGE_CONTENT_TYPE**
2174
+
2175
+ - $.message.issue.descriptor.additional_desc.content_type must be present in the payload`,
2176
+ DebugInfo: &validationutils.DebugInfo{
2177
+ FedConfig: configureDebugInfo,
2178
+ },
2179
+ }
2180
+ return []validationutils.ValidationOutput{result}, nil
2181
+ }
2182
+
2183
+ }
2184
+
2185
+ result := validationutils.ValidationOutput{
2186
+ TestName: "REQUIRED_MESSAGE_CONTENT_TYPE",
2187
+ Valid: valid,
2188
+ Code: 0,
2189
+ DebugInfo: &validationutils.DebugInfo{
2190
+ FedConfig: configureDebugInfo,
2191
+ },
2192
+ }
2193
+
2194
+ if valid {
2195
+ result.Code = 200
2196
+ } else {
2197
+ result.Code = 30000
2198
+ }
2199
+
2200
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
2201
+ results = append(results, result)
2202
+ results = append(results, subResults...)
2203
+
2204
+ return results, nil
2205
+ }
2206
+ var REQUIRED_MESSAGE_LAST_ACTION_ID = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
2207
+
2208
+ if input.Config.SkipTestsDict != nil {
2209
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_LAST_ACTION_ID"]; skip {
2210
+ return []validationutils.ValidationOutput{}, nil
2211
+ }
2212
+ }
2213
+
2214
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
2215
+
2216
+ subResults := make([]validationutils.ValidationOutput, 0)
2217
+ valid := true
2218
+ configureDebugInfo := ""
2219
+ for _, testObjMap := range scope {
2220
+ validationutils.UnusedFunction(testObjMap)
2221
+
2222
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.last_action_id", true)
2223
+ validationutils.UnusedFunction(attr)
2224
+
2225
+ validate := validationutils.ArePresent(attr)
2226
+
2227
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_LAST_ACTION_ID","attr":"$.message.issue.last_action_id","_RETURN_":"attr are present","action":["issue"]}`
2228
+
2229
+ if !validate {
2230
+ result := validationutils.ValidationOutput{
2231
+ TestName: "REQUIRED_MESSAGE_LAST_ACTION_ID",
2232
+ Valid: false,
2233
+ Code: 30000,
2234
+ Description: `#### **REQUIRED_MESSAGE_LAST_ACTION_ID**
2235
+
2236
+ - $.message.issue.last_action_id must be present in the payload`,
2237
+ DebugInfo: &validationutils.DebugInfo{
2238
+ FedConfig: configureDebugInfo,
2239
+ },
2240
+ }
2241
+ return []validationutils.ValidationOutput{result}, nil
2242
+ }
2243
+
2244
+ }
2245
+
2246
+ result := validationutils.ValidationOutput{
2247
+ TestName: "REQUIRED_MESSAGE_LAST_ACTION_ID",
2248
+ Valid: valid,
2249
+ Code: 0,
2250
+ DebugInfo: &validationutils.DebugInfo{
2251
+ FedConfig: configureDebugInfo,
2252
+ },
2253
+ }
2254
+
2255
+ if valid {
2256
+ result.Code = 200
2257
+ } else {
2258
+ result.Code = 30000
2259
+ }
2260
+
2261
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
2262
+ results = append(results, result)
2263
+ results = append(results, subResults...)
2264
+
2265
+ return results, nil
2266
+ }
2267
+ var REQUIRED_MESSAGE_ID_25 = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
2268
+
2269
+ if input.Config.SkipTestsDict != nil {
2270
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_ID_25"]; skip {
2271
+ return []validationutils.ValidationOutput{}, nil
2272
+ }
2273
+ }
2274
+
2275
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
2276
+
2277
+ subResults := make([]validationutils.ValidationOutput, 0)
2278
+ valid := true
2279
+ configureDebugInfo := ""
2280
+ for _, testObjMap := range scope {
2281
+ validationutils.UnusedFunction(testObjMap)
2282
+
2283
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.actions[*].id", true)
2284
+ validationutils.UnusedFunction(attr)
2285
+
2286
+ validate := validationutils.ArePresent(attr)
2287
+
2288
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_ID_25","attr":"$.message.issue.actions[*].id","_RETURN_":"attr are present","action":["issue"]}`
2289
+
2290
+ if !validate {
2291
+ result := validationutils.ValidationOutput{
2292
+ TestName: "REQUIRED_MESSAGE_ID_25",
2293
+ Valid: false,
2294
+ Code: 30000,
2295
+ Description: `#### **REQUIRED_MESSAGE_ID_25**
2296
+
2297
+ - $.message.issue.actions[*].id must be present in the payload`,
2298
+ DebugInfo: &validationutils.DebugInfo{
2299
+ FedConfig: configureDebugInfo,
2300
+ },
2301
+ }
2302
+ return []validationutils.ValidationOutput{result}, nil
2303
+ }
2304
+
2305
+ }
2306
+
2307
+ result := validationutils.ValidationOutput{
2308
+ TestName: "REQUIRED_MESSAGE_ID_25",
2309
+ Valid: valid,
2310
+ Code: 0,
2311
+ DebugInfo: &validationutils.DebugInfo{
2312
+ FedConfig: configureDebugInfo,
2313
+ },
2314
+ }
2315
+
2316
+ if valid {
2317
+ result.Code = 200
2318
+ } else {
2319
+ result.Code = 30000
2320
+ }
2321
+
2322
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
2323
+ results = append(results, result)
2324
+ results = append(results, subResults...)
2325
+
2326
+ return results, nil
2327
+ }
2328
+ var REQUIRED_MESSAGE_CODE_26 = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
2329
+
2330
+ if input.Config.SkipTestsDict != nil {
2331
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_CODE_26"]; skip {
2332
+ return []validationutils.ValidationOutput{}, nil
2333
+ }
2334
+ }
2335
+
2336
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
2337
+
2338
+ subResults := make([]validationutils.ValidationOutput, 0)
2339
+ valid := true
2340
+ configureDebugInfo := ""
2341
+ for _, testObjMap := range scope {
2342
+ validationutils.UnusedFunction(testObjMap)
2343
+
2344
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.actions[*].descriptor.code", true)
2345
+ validationutils.UnusedFunction(attr)
2346
+
2347
+ validate := validationutils.ArePresent(attr)
2348
+
2349
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_CODE_26","attr":"$.message.issue.actions[*].descriptor.code","_RETURN_":"attr are present","action":["issue"]}`
2350
+
2351
+ if !validate {
2352
+ result := validationutils.ValidationOutput{
2353
+ TestName: "REQUIRED_MESSAGE_CODE_26",
2354
+ Valid: false,
2355
+ Code: 30000,
2356
+ Description: `#### **REQUIRED_MESSAGE_CODE_26**
2357
+
2358
+ - $.message.issue.actions[*].descriptor.code must be present in the payload`,
2359
+ DebugInfo: &validationutils.DebugInfo{
2360
+ FedConfig: configureDebugInfo,
2361
+ },
2362
+ }
2363
+ return []validationutils.ValidationOutput{result}, nil
2364
+ }
2365
+
2366
+ }
2367
+
2368
+ result := validationutils.ValidationOutput{
2369
+ TestName: "REQUIRED_MESSAGE_CODE_26",
2370
+ Valid: valid,
2371
+ Code: 0,
2372
+ DebugInfo: &validationutils.DebugInfo{
2373
+ FedConfig: configureDebugInfo,
2374
+ },
2375
+ }
2376
+
2377
+ if valid {
2378
+ result.Code = 200
2379
+ } else {
2380
+ result.Code = 30000
2381
+ }
2382
+
2383
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
2384
+ results = append(results, result)
2385
+ results = append(results, subResults...)
2386
+
2387
+ return results, nil
2388
+ }
2389
+ var REQUIRED_MESSAGE_SHORT_DESC_27 = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
2390
+
2391
+ if input.Config.SkipTestsDict != nil {
2392
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_SHORT_DESC_27"]; skip {
2393
+ return []validationutils.ValidationOutput{}, nil
2394
+ }
2395
+ }
2396
+
2397
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
2398
+
2399
+ subResults := make([]validationutils.ValidationOutput, 0)
2400
+ valid := true
2401
+ configureDebugInfo := ""
2402
+ for _, testObjMap := range scope {
2403
+ validationutils.UnusedFunction(testObjMap)
2404
+
2405
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.actions[*].descriptor.short_desc", true)
2406
+ validationutils.UnusedFunction(attr)
2407
+
2408
+ validate := validationutils.ArePresent(attr)
2409
+
2410
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_SHORT_DESC_27","attr":"$.message.issue.actions[*].descriptor.short_desc","_RETURN_":"attr are present","action":["issue"]}`
2411
+
2412
+ if !validate {
2413
+ result := validationutils.ValidationOutput{
2414
+ TestName: "REQUIRED_MESSAGE_SHORT_DESC_27",
2415
+ Valid: false,
2416
+ Code: 30000,
2417
+ Description: `#### **REQUIRED_MESSAGE_SHORT_DESC_27**
2418
+
2419
+ - $.message.issue.actions[*].descriptor.short_desc must be present in the payload`,
2420
+ DebugInfo: &validationutils.DebugInfo{
2421
+ FedConfig: configureDebugInfo,
2422
+ },
2423
+ }
2424
+ return []validationutils.ValidationOutput{result}, nil
2425
+ }
2426
+
2427
+ }
2428
+
2429
+ result := validationutils.ValidationOutput{
2430
+ TestName: "REQUIRED_MESSAGE_SHORT_DESC_27",
2431
+ Valid: valid,
2432
+ Code: 0,
2433
+ DebugInfo: &validationutils.DebugInfo{
2434
+ FedConfig: configureDebugInfo,
2435
+ },
2436
+ }
2437
+
2438
+ if valid {
2439
+ result.Code = 200
2440
+ } else {
2441
+ result.Code = 30000
2442
+ }
2443
+
2444
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
2445
+ results = append(results, result)
2446
+ results = append(results, subResults...)
2447
+
2448
+ return results, nil
2449
+ }
2450
+ var REQUIRED_MESSAGE_UPDATED_AT_28 = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
2451
+
2452
+ if input.Config.SkipTestsDict != nil {
2453
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_UPDATED_AT_28"]; skip {
2454
+ return []validationutils.ValidationOutput{}, nil
2455
+ }
2456
+ }
2457
+
2458
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
2459
+
2460
+ subResults := make([]validationutils.ValidationOutput, 0)
2461
+ valid := true
2462
+ configureDebugInfo := ""
2463
+ for _, testObjMap := range scope {
2464
+ validationutils.UnusedFunction(testObjMap)
2465
+
2466
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.actions[*].updated_at", true)
2467
+ validationutils.UnusedFunction(attr)
2468
+
2469
+ validate := validationutils.ArePresent(attr)
2470
+
2471
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_UPDATED_AT_28","attr":"$.message.issue.actions[*].updated_at","_RETURN_":"attr are present","action":["issue"]}`
2472
+
2473
+ if !validate {
2474
+ result := validationutils.ValidationOutput{
2475
+ TestName: "REQUIRED_MESSAGE_UPDATED_AT_28",
2476
+ Valid: false,
2477
+ Code: 30000,
2478
+ Description: `#### **REQUIRED_MESSAGE_UPDATED_AT_28**
2479
+
2480
+ - $.message.issue.actions[*].updated_at must be present in the payload`,
2481
+ DebugInfo: &validationutils.DebugInfo{
2482
+ FedConfig: configureDebugInfo,
2483
+ },
2484
+ }
2485
+ return []validationutils.ValidationOutput{result}, nil
2486
+ }
2487
+
2488
+ }
2489
+
2490
+ result := validationutils.ValidationOutput{
2491
+ TestName: "REQUIRED_MESSAGE_UPDATED_AT_28",
2492
+ Valid: valid,
2493
+ Code: 0,
2494
+ DebugInfo: &validationutils.DebugInfo{
2495
+ FedConfig: configureDebugInfo,
2496
+ },
2497
+ }
2498
+
2499
+ if valid {
2500
+ result.Code = 200
2501
+ } else {
2502
+ result.Code = 30000
2503
+ }
2504
+
2505
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
2506
+ results = append(results, result)
2507
+ results = append(results, subResults...)
2508
+
2509
+ return results, nil
2510
+ }
2511
+ var REQUIRED_MESSAGE_ACTION_BY = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
2512
+
2513
+ if input.Config.SkipTestsDict != nil {
2514
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_MESSAGE_ACTION_BY"]; skip {
2515
+ return []validationutils.ValidationOutput{}, nil
2516
+ }
2517
+ }
2518
+
2519
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
2520
+
2521
+ subResults := make([]validationutils.ValidationOutput, 0)
2522
+ valid := true
2523
+ configureDebugInfo := ""
2524
+ for _, testObjMap := range scope {
2525
+ validationutils.UnusedFunction(testObjMap)
2526
+
2527
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.actions[*].action_by", true)
2528
+ validationutils.UnusedFunction(attr)
2529
+
2530
+ validate := validationutils.ArePresent(attr)
2531
+
2532
+ configureDebugInfo = `{"_NAME_":"REQUIRED_MESSAGE_ACTION_BY","attr":"$.message.issue.actions[*].action_by","_RETURN_":"attr are present","action":["issue"]}`
2533
+
2534
+ if !validate {
2535
+ result := validationutils.ValidationOutput{
2536
+ TestName: "REQUIRED_MESSAGE_ACTION_BY",
2537
+ Valid: false,
2538
+ Code: 30000,
2539
+ Description: `#### **REQUIRED_MESSAGE_ACTION_BY**
2540
+
2541
+ - $.message.issue.actions[*].action_by must be present in the payload`,
2542
+ DebugInfo: &validationutils.DebugInfo{
2543
+ FedConfig: configureDebugInfo,
2544
+ },
2545
+ }
2546
+ return []validationutils.ValidationOutput{result}, nil
2547
+ }
2548
+
2549
+ }
2550
+
2551
+ result := validationutils.ValidationOutput{
2552
+ TestName: "REQUIRED_MESSAGE_ACTION_BY",
2553
+ Valid: valid,
2554
+ Code: 0,
2555
+ DebugInfo: &validationutils.DebugInfo{
2556
+ FedConfig: configureDebugInfo,
2557
+ },
2558
+ }
2559
+
2560
+ if valid {
2561
+ result.Code = 200
2562
+ } else {
2563
+ result.Code = 30000
2564
+ }
2565
+
2566
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
2567
+ results = append(results, result)
2568
+ results = append(results, subResults...)
2569
+
2570
+ return results, nil
2571
+ }
2572
+ var VALID_ENUM_MESSAGE_STATUS = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
2573
+
2574
+ if input.Config.SkipTestsDict != nil {
2575
+ if _, skip := input.Config.SkipTestsDict["VALID_ENUM_MESSAGE_STATUS"]; skip {
2576
+ return []validationutils.ValidationOutput{}, nil
2577
+ }
2578
+ }
2579
+
2580
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
2581
+
2582
+ subResults := make([]validationutils.ValidationOutput, 0)
2583
+ valid := true
2584
+ configureDebugInfo := ""
2585
+ for _, testObjMap := range scope {
2586
+ validationutils.UnusedFunction(testObjMap)
2587
+
2588
+ enumList := validationutils.StringSliceToInterface([]string{`OPEN`, `CLOSED`, `PROCESSING`, `RESOLVED`, `INFO_PROVIDED`})
2589
+ validationutils.UnusedFunction(enumList)
2590
+ enumPath := validationutils.GetJsonPath(testObjMap, "$.message.issue.status", true)
2591
+ validationutils.UnusedFunction(enumPath)
2592
+
2593
+ skipCheck := !(validationutils.ArePresent(enumPath))
2594
+ if skipCheck {
2595
+ continue
2596
+ }
2597
+
2598
+ validate := validationutils.AllIn(enumPath, enumList)
2599
+
2600
+ configureDebugInfo = `{"_NAME_":"VALID_ENUM_MESSAGE_STATUS","enumList":["OPEN","CLOSED","PROCESSING","RESOLVED","INFO_PROVIDED"],"enumPath":"$.message.issue.status","_CONTINUE_":"!(enumPath are present)","_RETURN_":"enumPath all in enumList","action":["issue"]}`
2601
+
2602
+ if !validate {
2603
+ result := validationutils.ValidationOutput{
2604
+ TestName: "VALID_ENUM_MESSAGE_STATUS",
2605
+ Valid: false,
2606
+ Code: 30000,
2607
+ Description: `#### **VALID_ENUM_MESSAGE_STATUS**
2608
+
2609
+ - All elements of $.message.issue.status must be in ["OPEN", "CLOSED", "PROCESSING", "RESOLVED", "INFO_PROVIDED"]
2610
+
2611
+ > **Skip if:**
2612
+ >
2613
+ > - $.message.issue.status is not in the payload`,
2614
+ DebugInfo: &validationutils.DebugInfo{
2615
+ FedConfig: configureDebugInfo,
2616
+ },
2617
+ }
2618
+ return []validationutils.ValidationOutput{result}, nil
2619
+ }
2620
+
2621
+ }
2622
+
2623
+ result := validationutils.ValidationOutput{
2624
+ TestName: "VALID_ENUM_MESSAGE_STATUS",
2625
+ Valid: valid,
2626
+ Code: 0,
2627
+ DebugInfo: &validationutils.DebugInfo{
2628
+ FedConfig: configureDebugInfo,
2629
+ },
2630
+ }
2631
+
2632
+ if valid {
2633
+ result.Code = 200
2634
+ } else {
2635
+ result.Code = 30000
2636
+ }
2637
+
2638
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
2639
+ results = append(results, result)
2640
+ results = append(results, subResults...)
2641
+
2642
+ return results, nil
2643
+ }
2644
+ var VALID_ENUM_MESSAGE_LEVEL = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
2645
+
2646
+ if input.Config.SkipTestsDict != nil {
2647
+ if _, skip := input.Config.SkipTestsDict["VALID_ENUM_MESSAGE_LEVEL"]; skip {
2648
+ return []validationutils.ValidationOutput{}, nil
2649
+ }
2650
+ }
2651
+
2652
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
2653
+
2654
+ subResults := make([]validationutils.ValidationOutput, 0)
2655
+ valid := true
2656
+ configureDebugInfo := ""
2657
+ for _, testObjMap := range scope {
2658
+ validationutils.UnusedFunction(testObjMap)
2659
+
2660
+ enumList := validationutils.StringSliceToInterface([]string{`ISSUE`, `GREVIENCE`, `DISPUTE`})
2661
+ validationutils.UnusedFunction(enumList)
2662
+ enumPath := validationutils.GetJsonPath(testObjMap, "$.message.issue.level", true)
2663
+ validationutils.UnusedFunction(enumPath)
2664
+
2665
+ skipCheck := !(validationutils.ArePresent(enumPath))
2666
+ if skipCheck {
2667
+ continue
2668
+ }
2669
+
2670
+ validate := validationutils.AllIn(enumPath, enumList)
2671
+
2672
+ configureDebugInfo = `{"_NAME_":"VALID_ENUM_MESSAGE_LEVEL","enumList":["ISSUE","GREVIENCE","DISPUTE"],"enumPath":"$.message.issue.level","_CONTINUE_":"!(enumPath are present)","_RETURN_":"enumPath all in enumList","action":["issue"]}`
2673
+
2674
+ if !validate {
2675
+ result := validationutils.ValidationOutput{
2676
+ TestName: "VALID_ENUM_MESSAGE_LEVEL",
2677
+ Valid: false,
2678
+ Code: 30000,
2679
+ Description: `#### **VALID_ENUM_MESSAGE_LEVEL**
2680
+
2681
+ - All elements of $.message.issue.level must be in ["ISSUE", "GREVIENCE", "DISPUTE"]
2682
+
2683
+ > **Skip if:**
2684
+ >
2685
+ > - $.message.issue.level is not in the payload`,
2686
+ DebugInfo: &validationutils.DebugInfo{
2687
+ FedConfig: configureDebugInfo,
2688
+ },
2689
+ }
2690
+ return []validationutils.ValidationOutput{result}, nil
2691
+ }
2692
+
2693
+ }
2694
+
2695
+ result := validationutils.ValidationOutput{
2696
+ TestName: "VALID_ENUM_MESSAGE_LEVEL",
2697
+ Valid: valid,
2698
+ Code: 0,
2699
+ DebugInfo: &validationutils.DebugInfo{
2700
+ FedConfig: configureDebugInfo,
2701
+ },
2702
+ }
2703
+
2704
+ if valid {
2705
+ result.Code = 200
2706
+ } else {
2707
+ result.Code = 30000
2708
+ }
2709
+
2710
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
2711
+ results = append(results, result)
2712
+ results = append(results, subResults...)
2713
+
2714
+ return results, nil
2715
+ }
2716
+ var VALID_ENUM_MESSAGE_REF_TYPE = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
2717
+
2718
+ if input.Config.SkipTestsDict != nil {
2719
+ if _, skip := input.Config.SkipTestsDict["VALID_ENUM_MESSAGE_REF_TYPE"]; skip {
2720
+ return []validationutils.ValidationOutput{}, nil
2721
+ }
2722
+ }
2723
+
2724
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
2725
+
2726
+ subResults := make([]validationutils.ValidationOutput, 0)
2727
+ valid := true
2728
+ configureDebugInfo := ""
2729
+ for _, testObjMap := range scope {
2730
+ validationutils.UnusedFunction(testObjMap)
2731
+
2732
+ enumList := validationutils.StringSliceToInterface([]string{`ORDER`, `ITEM`, `FULFILLMENT`, `TRANSACTION_ID`, `MESSAGE_ID`, `PROVIDER`, `COMPLAINT`, `ACTION`, `PAYMENT`, `CUSTOMER`, `AGENT`})
2733
+ validationutils.UnusedFunction(enumList)
2734
+ enumPath := validationutils.GetJsonPath(testObjMap, "$.message.issue.refs[*].ref_type", true)
2735
+ validationutils.UnusedFunction(enumPath)
2736
+
2737
+ skipCheck := !(validationutils.ArePresent(enumPath))
2738
+ if skipCheck {
2739
+ continue
2740
+ }
2741
+
2742
+ validate := validationutils.AllIn(enumPath, enumList)
2743
+
2744
+ configureDebugInfo = `{"_NAME_":"VALID_ENUM_MESSAGE_REF_TYPE","enumList":["ORDER","ITEM","FULFILLMENT","TRANSACTION_ID","MESSAGE_ID","PROVIDER","COMPLAINT","ACTION","PAYMENT","CUSTOMER","AGENT"],"enumPath":"$.message.issue.refs[*].ref_type","_CONTINUE_":"!(enumPath are present)","_RETURN_":"enumPath all in enumList","action":["issue"]}`
2745
+
2746
+ if !validate {
2747
+ result := validationutils.ValidationOutput{
2748
+ TestName: "VALID_ENUM_MESSAGE_REF_TYPE",
2749
+ Valid: false,
2750
+ Code: 30000,
2751
+ Description: `#### **VALID_ENUM_MESSAGE_REF_TYPE**
2752
+
2753
+ - All elements of $.message.issue.refs[*].ref_type must be in ["ORDER", "ITEM", "FULFILLMENT", "TRANSACTION_ID", "MESSAGE_ID", "PROVIDER", "COMPLAINT", "ACTION", "PAYMENT", "CUSTOMER", "AGENT"]
2754
+
2755
+ > **Skip if:**
2756
+ >
2757
+ > - $.message.issue.refs[*].ref_type is not in the payload`,
2758
+ DebugInfo: &validationutils.DebugInfo{
2759
+ FedConfig: configureDebugInfo,
2760
+ },
2761
+ }
2762
+ return []validationutils.ValidationOutput{result}, nil
2763
+ }
2764
+
2765
+ }
2766
+
2767
+ result := validationutils.ValidationOutput{
2768
+ TestName: "VALID_ENUM_MESSAGE_REF_TYPE",
2769
+ Valid: valid,
2770
+ Code: 0,
2771
+ DebugInfo: &validationutils.DebugInfo{
2772
+ FedConfig: configureDebugInfo,
2773
+ },
2774
+ }
2775
+
2776
+ if valid {
2777
+ result.Code = 200
2778
+ } else {
2779
+ result.Code = 30000
2780
+ }
2781
+
2782
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
2783
+ results = append(results, result)
2784
+ results = append(results, subResults...)
2785
+
2786
+ return results, nil
2787
+ }
2788
+ var VALID_ENUM_MESSAGE_TYPE = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
2789
+
2790
+ if input.Config.SkipTestsDict != nil {
2791
+ if _, skip := input.Config.SkipTestsDict["VALID_ENUM_MESSAGE_TYPE"]; skip {
2792
+ return []validationutils.ValidationOutput{}, nil
2793
+ }
2794
+ }
2795
+
2796
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
2797
+
2798
+ subResults := make([]validationutils.ValidationOutput, 0)
2799
+ valid := true
2800
+ configureDebugInfo := ""
2801
+ for _, testObjMap := range scope {
2802
+ validationutils.UnusedFunction(testObjMap)
2803
+
2804
+ enumList := validationutils.StringSliceToInterface([]string{`INTERFACING_NP`, `COUNTERPARTY_NP`, `CASCADED_NP`, `PROVIDER`, `AGENT`, `CUSTOMER`, `INTERFACING_NP_GRO`, `COUNTERPARTY_NP_GRO`, `CASCADED_NP_GRO`, `CONSUMER`})
2805
+ validationutils.UnusedFunction(enumList)
2806
+ enumPath := validationutils.GetJsonPath(testObjMap, "$.message.issue.actors[*].type", true)
2807
+ validationutils.UnusedFunction(enumPath)
2808
+
2809
+ skipCheck := !(validationutils.ArePresent(enumPath))
2810
+ if skipCheck {
2811
+ continue
2812
+ }
2813
+
2814
+ validate := validationutils.AllIn(enumPath, enumList)
2815
+
2816
+ configureDebugInfo = `{"_NAME_":"VALID_ENUM_MESSAGE_TYPE","enumList":["INTERFACING_NP","COUNTERPARTY_NP","CASCADED_NP","PROVIDER","AGENT","CUSTOMER","INTERFACING_NP_GRO","COUNTERPARTY_NP_GRO","CASCADED_NP_GRO","CONSUMER"],"enumPath":"$.message.issue.actors[*].type","_CONTINUE_":"!(enumPath are present)","_RETURN_":"enumPath all in enumList","action":["issue"]}`
2817
+
2818
+ if !validate {
2819
+ result := validationutils.ValidationOutput{
2820
+ TestName: "VALID_ENUM_MESSAGE_TYPE",
2821
+ Valid: false,
2822
+ Code: 30000,
2823
+ Description: `#### **VALID_ENUM_MESSAGE_TYPE**
2824
+
2825
+ - 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"]
2826
+
2827
+ > **Skip if:**
2828
+ >
2829
+ > - $.message.issue.actors[*].type is not in the payload`,
2830
+ DebugInfo: &validationutils.DebugInfo{
2831
+ FedConfig: configureDebugInfo,
2832
+ },
2833
+ }
2834
+ return []validationutils.ValidationOutput{result}, nil
2835
+ }
2836
+
2837
+ }
2838
+
2839
+ result := validationutils.ValidationOutput{
2840
+ TestName: "VALID_ENUM_MESSAGE_TYPE",
2841
+ Valid: valid,
2842
+ Code: 0,
2843
+ DebugInfo: &validationutils.DebugInfo{
2844
+ FedConfig: configureDebugInfo,
2845
+ },
2846
+ }
2847
+
2848
+ if valid {
2849
+ result.Code = 200
2850
+ } else {
2851
+ result.Code = 30000
2852
+ }
2853
+
2854
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
2855
+ results = append(results, result)
2856
+ results = append(results, subResults...)
2857
+
2858
+ return results, nil
2859
+ }
2860
+
2861
+ var testFunctions = validationutils.TestFunctionArray{
2862
+ REQUIRED_MESSAGE_ID,
2863
+ REQUIRED_MESSAGE_STATUS,
2864
+ REQUIRED_MESSAGE_LEVEL,
2865
+ REQUIRED_MESSAGE_CREATED_AT,
2866
+ REQUIRED_MESSAGE_UPDATED_AT,
2867
+ REQUIRED_MESSAGE_REF_ID,
2868
+ REQUIRED_MESSAGE_REF_TYPE,
2869
+ REQUIRED_MESSAGE_ID_10,
2870
+ REQUIRED_MESSAGE_TYPE,
2871
+ REQUIRED_MESSAGE_NAME,
2872
+ REQUIRED_MESSAGE_NAME_13,
2873
+ REQUIRED_MESSAGE_PHONE,
2874
+ REQUIRED_MESSAGE_EMAIL,
2875
+ REQUIRED_MESSAGE_SOURCE_ID,
2876
+ REQUIRED_MESSAGE_CODE,
2877
+ REQUIRED_MESSAGE_SHORT_DESC,
2878
+ REQUIRED_MESSAGE_LONG_DESC,
2879
+ REQUIRED_MESSAGE_URL,
2880
+ REQUIRED_MESSAGE_CONTENT_TYPE,
2881
+ REQUIRED_MESSAGE_LAST_ACTION_ID,
2882
+ REQUIRED_MESSAGE_ID_25,
2883
+ REQUIRED_MESSAGE_CODE_26,
2884
+ REQUIRED_MESSAGE_SHORT_DESC_27,
2885
+ REQUIRED_MESSAGE_UPDATED_AT_28,
2886
+ REQUIRED_MESSAGE_ACTION_BY,
2887
+ VALID_ENUM_MESSAGE_STATUS,
2888
+ VALID_ENUM_MESSAGE_LEVEL,
2889
+ VALID_ENUM_MESSAGE_REF_TYPE,
2890
+ VALID_ENUM_MESSAGE_TYPE,
2891
+ }
2892
+
2893
+ allResults := make([]validationutils.ValidationOutput, 0)
2894
+
2895
+ for _, testFunc := range testFunctions {
2896
+ results, err := testFunc(input)
2897
+ if err != nil {
2898
+ return nil, err
2899
+ }
2900
+ allResults = append(allResults, results...)
2901
+ }
2902
+
2903
+ subResults = allResults
2904
+ // if all subResults are valid, then valid is true
2905
+ valid = true
2906
+ for _, res := range subResults {
2907
+ if !res.Valid {
2908
+ valid = false
2909
+ break
2910
+ }
2911
+ }
2912
+
2913
+ configureDebugInfo = `NESTED_TEST_OBJECT`
2914
+
2915
+ }
2916
+
2917
+ result := validationutils.ValidationOutput{
2918
+ TestName: "ISSUE_VALIDATION_VERSION_200",
2919
+ Valid: valid,
2920
+ Code: 0,
2921
+ DebugInfo: &validationutils.DebugInfo{
2922
+ FedConfig: configureDebugInfo,
2923
+ },
2924
+ }
2925
+
2926
+ if valid {
2927
+ result.Code = 200
2928
+ } else {
2929
+ result.Code = 30000
2930
+ }
2931
+
2932
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
2933
+ results = append(results, result)
2934
+ results = append(results, subResults...)
2935
+
2936
+ return results, nil
2937
+ }
2938
+ var ISSUE_VALIDATION_VERSION_100 = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
2939
+
2940
+ if input.Config.SkipTestsDict != nil {
2941
+ if _, skip := input.Config.SkipTestsDict["ISSUE_VALIDATION_VERSION_100"]; skip {
2942
+ return []validationutils.ValidationOutput{}, nil
2943
+ }
2944
+ }
2945
+
2946
+ scope := validationutils.GetJsonPath(input.Payload, "$.message.issue.issue_actions", true)
2947
+
2948
+ subResults := make([]validationutils.ValidationOutput, 0)
2949
+ valid := true
2950
+ configureDebugInfo := ""
2951
+ for _, testObjMap := range scope {
2952
+ validationutils.UnusedFunction(testObjMap)
2953
+
2954
+ var ISSUE_VALIDATION_OPEN = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
2955
+
2956
+ if input.Config.SkipTestsDict != nil {
2957
+ if _, skip := input.Config.SkipTestsDict["ISSUE_VALIDATION_OPEN"]; skip {
2958
+ return []validationutils.ValidationOutput{}, nil
2959
+ }
2960
+ }
2961
+
2962
+ scope := validationutils.GetJsonPath(input.Payload, "$.message.issue[?(@.status=='OPEN')]", true)
2963
+
2964
+ subResults := make([]validationutils.ValidationOutput, 0)
2965
+ valid := true
2966
+ configureDebugInfo := ""
2967
+ for _, testObjMap := range scope {
2968
+ validationutils.UnusedFunction(testObjMap)
2969
+
2970
+ var REQUIRED_ISSUE_ID = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
2971
+
2972
+ if input.Config.SkipTestsDict != nil {
2973
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_ISSUE_ID"]; skip {
2974
+ return []validationutils.ValidationOutput{}, nil
2975
+ }
2976
+ }
2977
+
2978
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
2979
+
2980
+ subResults := make([]validationutils.ValidationOutput, 0)
2981
+ valid := true
2982
+ configureDebugInfo := ""
2983
+ for _, testObjMap := range scope {
2984
+ validationutils.UnusedFunction(testObjMap)
2985
+
2986
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.id", true)
2987
+ validationutils.UnusedFunction(attr)
2988
+
2989
+ validate := validationutils.ArePresent(attr)
2990
+
2991
+ configureDebugInfo = `{"_NAME_":"REQUIRED_ISSUE_ID","attr":"$.message.issue.id","_RETURN_":"attr are present","action":["issue"]}`
2992
+
2993
+ if !validate {
2994
+ result := validationutils.ValidationOutput{
2995
+ TestName: "REQUIRED_ISSUE_ID",
2996
+ Valid: false,
2997
+ Code: 30000,
2998
+ Description: `#### **REQUIRED_ISSUE_ID**
2999
+
3000
+ - $.message.issue.id must be present in the payload`,
3001
+ DebugInfo: &validationutils.DebugInfo{
3002
+ FedConfig: configureDebugInfo,
3003
+ },
3004
+ }
3005
+ return []validationutils.ValidationOutput{result}, nil
3006
+ }
3007
+
3008
+ }
3009
+
3010
+ result := validationutils.ValidationOutput{
3011
+ TestName: "REQUIRED_ISSUE_ID",
3012
+ Valid: valid,
3013
+ Code: 0,
3014
+ DebugInfo: &validationutils.DebugInfo{
3015
+ FedConfig: configureDebugInfo,
3016
+ },
3017
+ }
3018
+
3019
+ if valid {
3020
+ result.Code = 200
3021
+ } else {
3022
+ result.Code = 30000
3023
+ }
3024
+
3025
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
3026
+ results = append(results, result)
3027
+ results = append(results, subResults...)
3028
+
3029
+ return results, nil
3030
+ }
3031
+ var REQUIRED_ISSUE_STATUS = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
3032
+
3033
+ if input.Config.SkipTestsDict != nil {
3034
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_ISSUE_STATUS"]; skip {
3035
+ return []validationutils.ValidationOutput{}, nil
3036
+ }
3037
+ }
3038
+
3039
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
3040
+
3041
+ subResults := make([]validationutils.ValidationOutput, 0)
3042
+ valid := true
3043
+ configureDebugInfo := ""
3044
+ for _, testObjMap := range scope {
3045
+ validationutils.UnusedFunction(testObjMap)
3046
+
3047
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.status", true)
3048
+ validationutils.UnusedFunction(attr)
3049
+ validValues := validationutils.StringSliceToInterface([]string{`OPEN`, `CLOSED`})
3050
+ validationutils.UnusedFunction(validValues)
3051
+
3052
+ validate := validationutils.AllIn(attr, validValues)
3053
+
3054
+ configureDebugInfo = `{"_NAME_":"REQUIRED_ISSUE_STATUS","attr":"$.message.issue.status","validValues":["OPEN","CLOSED"],"_RETURN_":"attr all in validValues","action":["issue"]}`
3055
+
3056
+ if !validate {
3057
+ result := validationutils.ValidationOutput{
3058
+ TestName: "REQUIRED_ISSUE_STATUS",
3059
+ Valid: false,
3060
+ Code: 30000,
3061
+ Description: `#### **REQUIRED_ISSUE_STATUS**
3062
+
3063
+ - All elements of $.message.issue.status must be in ["OPEN", "CLOSED"]`,
3064
+ DebugInfo: &validationutils.DebugInfo{
3065
+ FedConfig: configureDebugInfo,
3066
+ },
3067
+ }
3068
+ return []validationutils.ValidationOutput{result}, nil
3069
+ }
3070
+
3071
+ }
3072
+
3073
+ result := validationutils.ValidationOutput{
3074
+ TestName: "REQUIRED_ISSUE_STATUS",
3075
+ Valid: valid,
3076
+ Code: 0,
3077
+ DebugInfo: &validationutils.DebugInfo{
3078
+ FedConfig: configureDebugInfo,
3079
+ },
3080
+ }
3081
+
3082
+ if valid {
3083
+ result.Code = 200
3084
+ } else {
3085
+ result.Code = 30000
3086
+ }
3087
+
3088
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
3089
+ results = append(results, result)
3090
+ results = append(results, subResults...)
3091
+
3092
+ return results, nil
3093
+ }
3094
+ var REQUIRED_ISSUE_CATEGORY = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
3095
+
3096
+ if input.Config.SkipTestsDict != nil {
3097
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_ISSUE_CATEGORY"]; skip {
3098
+ return []validationutils.ValidationOutput{}, nil
3099
+ }
3100
+ }
3101
+
3102
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
3103
+
3104
+ subResults := make([]validationutils.ValidationOutput, 0)
3105
+ valid := true
3106
+ configureDebugInfo := ""
3107
+ for _, testObjMap := range scope {
3108
+ validationutils.UnusedFunction(testObjMap)
3109
+
3110
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.category", true)
3111
+ validationutils.UnusedFunction(attr)
3112
+
3113
+ validate := validationutils.ArePresent(attr)
3114
+
3115
+ configureDebugInfo = `{"_NAME_":"REQUIRED_ISSUE_CATEGORY","attr":"$.message.issue.category","_RETURN_":"attr are present","action":["issue"]}`
3116
+
3117
+ if !validate {
3118
+ result := validationutils.ValidationOutput{
3119
+ TestName: "REQUIRED_ISSUE_CATEGORY",
3120
+ Valid: false,
3121
+ Code: 30000,
3122
+ Description: `#### **REQUIRED_ISSUE_CATEGORY**
3123
+
3124
+ - $.message.issue.category must be present in the payload`,
3125
+ DebugInfo: &validationutils.DebugInfo{
3126
+ FedConfig: configureDebugInfo,
3127
+ },
3128
+ }
3129
+ return []validationutils.ValidationOutput{result}, nil
3130
+ }
3131
+
3132
+ }
3133
+
3134
+ result := validationutils.ValidationOutput{
3135
+ TestName: "REQUIRED_ISSUE_CATEGORY",
3136
+ Valid: valid,
3137
+ Code: 0,
3138
+ DebugInfo: &validationutils.DebugInfo{
3139
+ FedConfig: configureDebugInfo,
3140
+ },
3141
+ }
3142
+
3143
+ if valid {
3144
+ result.Code = 200
3145
+ } else {
3146
+ result.Code = 30000
3147
+ }
3148
+
3149
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
3150
+ results = append(results, result)
3151
+ results = append(results, subResults...)
3152
+
3153
+ return results, nil
3154
+ }
3155
+ var REQUIRED_ISSUE_SUB_CATEGORY = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
3156
+
3157
+ if input.Config.SkipTestsDict != nil {
3158
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_ISSUE_SUB_CATEGORY"]; skip {
3159
+ return []validationutils.ValidationOutput{}, nil
3160
+ }
3161
+ }
3162
+
3163
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
3164
+
3165
+ subResults := make([]validationutils.ValidationOutput, 0)
3166
+ valid := true
3167
+ configureDebugInfo := ""
3168
+ for _, testObjMap := range scope {
3169
+ validationutils.UnusedFunction(testObjMap)
3170
+
3171
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.sub_category", true)
3172
+ validationutils.UnusedFunction(attr)
3173
+
3174
+ validate := validationutils.ArePresent(attr)
3175
+
3176
+ configureDebugInfo = `{"_NAME_":"REQUIRED_ISSUE_SUB_CATEGORY","attr":"$.message.issue.sub_category","_RETURN_":"attr are present","action":["issue"]}`
3177
+
3178
+ if !validate {
3179
+ result := validationutils.ValidationOutput{
3180
+ TestName: "REQUIRED_ISSUE_SUB_CATEGORY",
3181
+ Valid: false,
3182
+ Code: 30000,
3183
+ Description: `#### **REQUIRED_ISSUE_SUB_CATEGORY**
3184
+
3185
+ - $.message.issue.sub_category must be present in the payload`,
3186
+ DebugInfo: &validationutils.DebugInfo{
3187
+ FedConfig: configureDebugInfo,
3188
+ },
3189
+ }
3190
+ return []validationutils.ValidationOutput{result}, nil
3191
+ }
3192
+
3193
+ }
3194
+
3195
+ result := validationutils.ValidationOutput{
3196
+ TestName: "REQUIRED_ISSUE_SUB_CATEGORY",
3197
+ Valid: valid,
3198
+ Code: 0,
3199
+ DebugInfo: &validationutils.DebugInfo{
3200
+ FedConfig: configureDebugInfo,
3201
+ },
3202
+ }
3203
+
3204
+ if valid {
3205
+ result.Code = 200
3206
+ } else {
3207
+ result.Code = 30000
3208
+ }
3209
+
3210
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
3211
+ results = append(results, result)
3212
+ results = append(results, subResults...)
3213
+
3214
+ return results, nil
3215
+ }
3216
+ var REQUIRED_COMPLAINANT_PERSON_NAME = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
3217
+
3218
+ if input.Config.SkipTestsDict != nil {
3219
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_COMPLAINANT_PERSON_NAME"]; skip {
3220
+ return []validationutils.ValidationOutput{}, nil
3221
+ }
3222
+ }
3223
+
3224
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
3225
+
3226
+ subResults := make([]validationutils.ValidationOutput, 0)
3227
+ valid := true
3228
+ configureDebugInfo := ""
3229
+ for _, testObjMap := range scope {
3230
+ validationutils.UnusedFunction(testObjMap)
3231
+
3232
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.complainant_info.person.name", true)
3233
+ validationutils.UnusedFunction(attr)
3234
+
3235
+ validate := validationutils.ArePresent(attr)
3236
+
3237
+ configureDebugInfo = `{"_NAME_":"REQUIRED_COMPLAINANT_PERSON_NAME","attr":"$.message.issue.complainant_info.person.name","_RETURN_":"attr are present","action":["issue"]}`
3238
+
3239
+ if !validate {
3240
+ result := validationutils.ValidationOutput{
3241
+ TestName: "REQUIRED_COMPLAINANT_PERSON_NAME",
3242
+ Valid: false,
3243
+ Code: 30000,
3244
+ Description: `#### **REQUIRED_COMPLAINANT_PERSON_NAME**
3245
+
3246
+ - $.message.issue.complainant_info.person.name must be present in the payload`,
3247
+ DebugInfo: &validationutils.DebugInfo{
3248
+ FedConfig: configureDebugInfo,
3249
+ },
3250
+ }
3251
+ return []validationutils.ValidationOutput{result}, nil
3252
+ }
3253
+
3254
+ }
3255
+
3256
+ result := validationutils.ValidationOutput{
3257
+ TestName: "REQUIRED_COMPLAINANT_PERSON_NAME",
3258
+ Valid: valid,
3259
+ Code: 0,
3260
+ DebugInfo: &validationutils.DebugInfo{
3261
+ FedConfig: configureDebugInfo,
3262
+ },
3263
+ }
3264
+
3265
+ if valid {
3266
+ result.Code = 200
3267
+ } else {
3268
+ result.Code = 30000
3269
+ }
3270
+
3271
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
3272
+ results = append(results, result)
3273
+ results = append(results, subResults...)
3274
+
3275
+ return results, nil
3276
+ }
3277
+ var REQUIRED_COMPLAINANT_CONTACT_PHONE = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
3278
+
3279
+ if input.Config.SkipTestsDict != nil {
3280
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_COMPLAINANT_CONTACT_PHONE"]; skip {
3281
+ return []validationutils.ValidationOutput{}, nil
3282
+ }
3283
+ }
3284
+
3285
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
3286
+
3287
+ subResults := make([]validationutils.ValidationOutput, 0)
3288
+ valid := true
3289
+ configureDebugInfo := ""
3290
+ for _, testObjMap := range scope {
3291
+ validationutils.UnusedFunction(testObjMap)
3292
+
3293
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.complainant_info.contact.phone", true)
3294
+ validationutils.UnusedFunction(attr)
3295
+
3296
+ validate := validationutils.ArePresent(attr)
3297
+
3298
+ configureDebugInfo = `{"_NAME_":"REQUIRED_COMPLAINANT_CONTACT_PHONE","attr":"$.message.issue.complainant_info.contact.phone","_RETURN_":"attr are present","action":["issue"]}`
3299
+
3300
+ if !validate {
3301
+ result := validationutils.ValidationOutput{
3302
+ TestName: "REQUIRED_COMPLAINANT_CONTACT_PHONE",
3303
+ Valid: false,
3304
+ Code: 30000,
3305
+ Description: `#### **REQUIRED_COMPLAINANT_CONTACT_PHONE**
3306
+
3307
+ - $.message.issue.complainant_info.contact.phone must be present in the payload`,
3308
+ DebugInfo: &validationutils.DebugInfo{
3309
+ FedConfig: configureDebugInfo,
3310
+ },
3311
+ }
3312
+ return []validationutils.ValidationOutput{result}, nil
3313
+ }
3314
+
3315
+ }
3316
+
3317
+ result := validationutils.ValidationOutput{
3318
+ TestName: "REQUIRED_COMPLAINANT_CONTACT_PHONE",
3319
+ Valid: valid,
3320
+ Code: 0,
3321
+ DebugInfo: &validationutils.DebugInfo{
3322
+ FedConfig: configureDebugInfo,
3323
+ },
3324
+ }
3325
+
3326
+ if valid {
3327
+ result.Code = 200
3328
+ } else {
3329
+ result.Code = 30000
3330
+ }
3331
+
3332
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
3333
+ results = append(results, result)
3334
+ results = append(results, subResults...)
3335
+
3336
+ return results, nil
3337
+ }
3338
+ var REQUIRED_ORDER_ID = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
3339
+
3340
+ if input.Config.SkipTestsDict != nil {
3341
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_ORDER_ID"]; skip {
3342
+ return []validationutils.ValidationOutput{}, nil
3343
+ }
3344
+ }
3345
+
3346
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
3347
+
3348
+ subResults := make([]validationutils.ValidationOutput, 0)
3349
+ valid := true
3350
+ configureDebugInfo := ""
3351
+ for _, testObjMap := range scope {
3352
+ validationutils.UnusedFunction(testObjMap)
3353
+
3354
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.order_details.id", true)
3355
+ validationutils.UnusedFunction(attr)
3356
+
3357
+ validate := validationutils.ArePresent(attr)
3358
+
3359
+ configureDebugInfo = `{"_NAME_":"REQUIRED_ORDER_ID","attr":"$.message.issue.order_details.id","_RETURN_":"attr are present","action":["issue"]}`
3360
+
3361
+ if !validate {
3362
+ result := validationutils.ValidationOutput{
3363
+ TestName: "REQUIRED_ORDER_ID",
3364
+ Valid: false,
3365
+ Code: 30000,
3366
+ Description: `#### **REQUIRED_ORDER_ID**
3367
+
3368
+ - $.message.issue.order_details.id must be present in the payload`,
3369
+ DebugInfo: &validationutils.DebugInfo{
3370
+ FedConfig: configureDebugInfo,
3371
+ },
3372
+ }
3373
+ return []validationutils.ValidationOutput{result}, nil
3374
+ }
3375
+
3376
+ }
3377
+
3378
+ result := validationutils.ValidationOutput{
3379
+ TestName: "REQUIRED_ORDER_ID",
3380
+ Valid: valid,
3381
+ Code: 0,
3382
+ DebugInfo: &validationutils.DebugInfo{
3383
+ FedConfig: configureDebugInfo,
3384
+ },
3385
+ }
3386
+
3387
+ if valid {
3388
+ result.Code = 200
3389
+ } else {
3390
+ result.Code = 30000
3391
+ }
3392
+
3393
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
3394
+ results = append(results, result)
3395
+ results = append(results, subResults...)
3396
+
3397
+ return results, nil
3398
+ }
3399
+ var REQUIRED_ORDER_ITEMS = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
3400
+
3401
+ if input.Config.SkipTestsDict != nil {
3402
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_ORDER_ITEMS"]; skip {
3403
+ return []validationutils.ValidationOutput{}, nil
3404
+ }
3405
+ }
3406
+
3407
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
3408
+
3409
+ subResults := make([]validationutils.ValidationOutput, 0)
3410
+ valid := true
3411
+ configureDebugInfo := ""
3412
+ for _, testObjMap := range scope {
3413
+ validationutils.UnusedFunction(testObjMap)
3414
+
3415
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.order_details.items[*].id", true)
3416
+ validationutils.UnusedFunction(attr)
3417
+
3418
+ validate := validationutils.ArePresent(attr)
3419
+
3420
+ configureDebugInfo = `{"_NAME_":"REQUIRED_ORDER_ITEMS","attr":"$.message.issue.order_details.items[*].id","_RETURN_":"attr are present","action":["issue"]}`
3421
+
3422
+ if !validate {
3423
+ result := validationutils.ValidationOutput{
3424
+ TestName: "REQUIRED_ORDER_ITEMS",
3425
+ Valid: false,
3426
+ Code: 30000,
3427
+ Description: `#### **REQUIRED_ORDER_ITEMS**
3428
+
3429
+ - $.message.issue.order_details.items[*].id must be present in the payload`,
3430
+ DebugInfo: &validationutils.DebugInfo{
3431
+ FedConfig: configureDebugInfo,
3432
+ },
3433
+ }
3434
+ return []validationutils.ValidationOutput{result}, nil
3435
+ }
3436
+
3437
+ }
3438
+
3439
+ result := validationutils.ValidationOutput{
3440
+ TestName: "REQUIRED_ORDER_ITEMS",
3441
+ Valid: valid,
3442
+ Code: 0,
3443
+ DebugInfo: &validationutils.DebugInfo{
3444
+ FedConfig: configureDebugInfo,
3445
+ },
3446
+ }
3447
+
3448
+ if valid {
3449
+ result.Code = 200
3450
+ } else {
3451
+ result.Code = 30000
3452
+ }
3453
+
3454
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
3455
+ results = append(results, result)
3456
+ results = append(results, subResults...)
3457
+
3458
+ return results, nil
3459
+ }
3460
+ var REQUIRED_ORDER_ITEMS_QUANTITY = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
3461
+
3462
+ if input.Config.SkipTestsDict != nil {
3463
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_ORDER_ITEMS_QUANTITY"]; skip {
3464
+ return []validationutils.ValidationOutput{}, nil
3465
+ }
3466
+ }
3467
+
3468
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
3469
+
3470
+ subResults := make([]validationutils.ValidationOutput, 0)
3471
+ valid := true
3472
+ configureDebugInfo := ""
3473
+ for _, testObjMap := range scope {
3474
+ validationutils.UnusedFunction(testObjMap)
3475
+
3476
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.order_details.items[*].quantity", true)
3477
+ validationutils.UnusedFunction(attr)
3478
+
3479
+ validate := validationutils.ArePresent(attr)
3480
+
3481
+ configureDebugInfo = `{"_NAME_":"REQUIRED_ORDER_ITEMS_QUANTITY","attr":"$.message.issue.order_details.items[*].quantity","_RETURN_":"attr are present","action":["issue"]}`
3482
+
3483
+ if !validate {
3484
+ result := validationutils.ValidationOutput{
3485
+ TestName: "REQUIRED_ORDER_ITEMS_QUANTITY",
3486
+ Valid: false,
3487
+ Code: 30000,
3488
+ Description: `#### **REQUIRED_ORDER_ITEMS_QUANTITY**
3489
+
3490
+ - $.message.issue.order_details.items[*].quantity must be present in the payload`,
3491
+ DebugInfo: &validationutils.DebugInfo{
3492
+ FedConfig: configureDebugInfo,
3493
+ },
3494
+ }
3495
+ return []validationutils.ValidationOutput{result}, nil
3496
+ }
3497
+
3498
+ }
3499
+
3500
+ result := validationutils.ValidationOutput{
3501
+ TestName: "REQUIRED_ORDER_ITEMS_QUANTITY",
3502
+ Valid: valid,
3503
+ Code: 0,
3504
+ DebugInfo: &validationutils.DebugInfo{
3505
+ FedConfig: configureDebugInfo,
3506
+ },
3507
+ }
3508
+
3509
+ if valid {
3510
+ result.Code = 200
3511
+ } else {
3512
+ result.Code = 30000
3513
+ }
3514
+
3515
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
3516
+ results = append(results, result)
3517
+ results = append(results, subResults...)
3518
+
3519
+ return results, nil
3520
+ }
3521
+ var REQUIRED_FULFILLMENT_ID = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
3522
+
3523
+ if input.Config.SkipTestsDict != nil {
3524
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_FULFILLMENT_ID"]; skip {
3525
+ return []validationutils.ValidationOutput{}, nil
3526
+ }
3527
+ }
3528
+
3529
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
3530
+
3531
+ subResults := make([]validationutils.ValidationOutput, 0)
3532
+ valid := true
3533
+ configureDebugInfo := ""
3534
+ for _, testObjMap := range scope {
3535
+ validationutils.UnusedFunction(testObjMap)
3536
+
3537
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.order_details.fulfillments[*].id", true)
3538
+ validationutils.UnusedFunction(attr)
3539
+
3540
+ validate := validationutils.ArePresent(attr)
3541
+
3542
+ configureDebugInfo = `{"_NAME_":"REQUIRED_FULFILLMENT_ID","attr":"$.message.issue.order_details.fulfillments[*].id","_RETURN_":"attr are present","action":["issue"]}`
3543
+
3544
+ if !validate {
3545
+ result := validationutils.ValidationOutput{
3546
+ TestName: "REQUIRED_FULFILLMENT_ID",
3547
+ Valid: false,
3548
+ Code: 30000,
3549
+ Description: `#### **REQUIRED_FULFILLMENT_ID**
3550
+
3551
+ - $.message.issue.order_details.fulfillments[*].id must be present in the payload`,
3552
+ DebugInfo: &validationutils.DebugInfo{
3553
+ FedConfig: configureDebugInfo,
3554
+ },
3555
+ }
3556
+ return []validationutils.ValidationOutput{result}, nil
3557
+ }
3558
+
3559
+ }
3560
+
3561
+ result := validationutils.ValidationOutput{
3562
+ TestName: "REQUIRED_FULFILLMENT_ID",
3563
+ Valid: valid,
3564
+ Code: 0,
3565
+ DebugInfo: &validationutils.DebugInfo{
3566
+ FedConfig: configureDebugInfo,
3567
+ },
3568
+ }
3569
+
3570
+ if valid {
3571
+ result.Code = 200
3572
+ } else {
3573
+ result.Code = 30000
3574
+ }
3575
+
3576
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
3577
+ results = append(results, result)
3578
+ results = append(results, subResults...)
3579
+
3580
+ return results, nil
3581
+ }
3582
+ var REQUIRED_PROVIDER_ID = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
3583
+
3584
+ if input.Config.SkipTestsDict != nil {
3585
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_PROVIDER_ID"]; skip {
3586
+ return []validationutils.ValidationOutput{}, nil
3587
+ }
3588
+ }
3589
+
3590
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
3591
+
3592
+ subResults := make([]validationutils.ValidationOutput, 0)
3593
+ valid := true
3594
+ configureDebugInfo := ""
3595
+ for _, testObjMap := range scope {
3596
+ validationutils.UnusedFunction(testObjMap)
3597
+
3598
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.order_details.provider_id", true)
3599
+ validationutils.UnusedFunction(attr)
3600
+
3601
+ validate := validationutils.ArePresent(attr)
3602
+
3603
+ configureDebugInfo = `{"_NAME_":"REQUIRED_PROVIDER_ID","attr":"$.message.issue.order_details.provider_id","_RETURN_":"attr are present","action":["issue"]}`
3604
+
3605
+ if !validate {
3606
+ result := validationutils.ValidationOutput{
3607
+ TestName: "REQUIRED_PROVIDER_ID",
3608
+ Valid: false,
3609
+ Code: 30000,
3610
+ Description: `#### **REQUIRED_PROVIDER_ID**
3611
+
3612
+ - $.message.issue.order_details.provider_id must be present in the payload`,
3613
+ DebugInfo: &validationutils.DebugInfo{
3614
+ FedConfig: configureDebugInfo,
3615
+ },
3616
+ }
3617
+ return []validationutils.ValidationOutput{result}, nil
3618
+ }
3619
+
3620
+ }
3621
+
3622
+ result := validationutils.ValidationOutput{
3623
+ TestName: "REQUIRED_PROVIDER_ID",
3624
+ Valid: valid,
3625
+ Code: 0,
3626
+ DebugInfo: &validationutils.DebugInfo{
3627
+ FedConfig: configureDebugInfo,
3628
+ },
3629
+ }
3630
+
3631
+ if valid {
3632
+ result.Code = 200
3633
+ } else {
3634
+ result.Code = 30000
3635
+ }
3636
+
3637
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
3638
+ results = append(results, result)
3639
+ results = append(results, subResults...)
3640
+
3641
+ return results, nil
3642
+ }
3643
+ var REQUIRED_DESCRIPTION = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
3644
+
3645
+ if input.Config.SkipTestsDict != nil {
3646
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_DESCRIPTION"]; skip {
3647
+ return []validationutils.ValidationOutput{}, nil
3648
+ }
3649
+ }
3650
+
3651
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
3652
+
3653
+ subResults := make([]validationutils.ValidationOutput, 0)
3654
+ valid := true
3655
+ configureDebugInfo := ""
3656
+ for _, testObjMap := range scope {
3657
+ validationutils.UnusedFunction(testObjMap)
3658
+
3659
+ attr := validationutils.StringSliceToInterface([]string{`$.message.issue.description`})
3660
+ validationutils.UnusedFunction(attr)
3661
+
3662
+ validate := validationutils.ArePresent(attr)
3663
+
3664
+ configureDebugInfo = `{"_NAME_":"REQUIRED_DESCRIPTION","attr":["$.message.issue.description"],"_RETURN_":"attr are present","action":["issue"]}`
3665
+
3666
+ if !validate {
3667
+ result := validationutils.ValidationOutput{
3668
+ TestName: "REQUIRED_DESCRIPTION",
3669
+ Valid: false,
3670
+ Code: 30000,
3671
+ Description: `#### **REQUIRED_DESCRIPTION**
3672
+
3673
+ - ["$.message.issue.description"] must be present in the payload`,
3674
+ DebugInfo: &validationutils.DebugInfo{
3675
+ FedConfig: configureDebugInfo,
3676
+ },
3677
+ }
3678
+ return []validationutils.ValidationOutput{result}, nil
3679
+ }
3680
+
3681
+ }
3682
+
3683
+ result := validationutils.ValidationOutput{
3684
+ TestName: "REQUIRED_DESCRIPTION",
3685
+ Valid: valid,
3686
+ Code: 0,
3687
+ DebugInfo: &validationutils.DebugInfo{
3688
+ FedConfig: configureDebugInfo,
3689
+ },
3690
+ }
3691
+
3692
+ if valid {
3693
+ result.Code = 200
3694
+ } else {
3695
+ result.Code = 30000
3696
+ }
3697
+
3698
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
3699
+ results = append(results, result)
3700
+ results = append(results, subResults...)
3701
+
3702
+ return results, nil
3703
+ }
3704
+ var REQUIRED_DESCRIPTION_SHORT = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
3705
+
3706
+ if input.Config.SkipTestsDict != nil {
3707
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_DESCRIPTION_SHORT"]; skip {
3708
+ return []validationutils.ValidationOutput{}, nil
3709
+ }
3710
+ }
3711
+
3712
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
3713
+
3714
+ subResults := make([]validationutils.ValidationOutput, 0)
3715
+ valid := true
3716
+ configureDebugInfo := ""
3717
+ for _, testObjMap := range scope {
3718
+ validationutils.UnusedFunction(testObjMap)
3719
+
3720
+ attr := validationutils.StringSliceToInterface([]string{`$.message.issue.description.short_desc`})
3721
+ validationutils.UnusedFunction(attr)
3722
+
3723
+ validate := validationutils.ArePresent(attr)
3724
+
3725
+ configureDebugInfo = `{"_NAME_":"REQUIRED_DESCRIPTION_SHORT","attr":["$.message.issue.description.short_desc"],"_RETURN_":"attr are present","action":["issue"]}`
3726
+
3727
+ if !validate {
3728
+ result := validationutils.ValidationOutput{
3729
+ TestName: "REQUIRED_DESCRIPTION_SHORT",
3730
+ Valid: false,
3731
+ Code: 30000,
3732
+ Description: `#### **REQUIRED_DESCRIPTION_SHORT**
3733
+
3734
+ - ["$.message.issue.description.short_desc"] must be present in the payload`,
3735
+ DebugInfo: &validationutils.DebugInfo{
3736
+ FedConfig: configureDebugInfo,
3737
+ },
3738
+ }
3739
+ return []validationutils.ValidationOutput{result}, nil
3740
+ }
3741
+
3742
+ }
3743
+
3744
+ result := validationutils.ValidationOutput{
3745
+ TestName: "REQUIRED_DESCRIPTION_SHORT",
3746
+ Valid: valid,
3747
+ Code: 0,
3748
+ DebugInfo: &validationutils.DebugInfo{
3749
+ FedConfig: configureDebugInfo,
3750
+ },
3751
+ }
3752
+
3753
+ if valid {
3754
+ result.Code = 200
3755
+ } else {
3756
+ result.Code = 30000
3757
+ }
3758
+
3759
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
3760
+ results = append(results, result)
3761
+ results = append(results, subResults...)
3762
+
3763
+ return results, nil
3764
+ }
3765
+ var REQUIRED_DESCRIPTION_LONG = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
3766
+
3767
+ if input.Config.SkipTestsDict != nil {
3768
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_DESCRIPTION_LONG"]; skip {
3769
+ return []validationutils.ValidationOutput{}, nil
3770
+ }
3771
+ }
3772
+
3773
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
3774
+
3775
+ subResults := make([]validationutils.ValidationOutput, 0)
3776
+ valid := true
3777
+ configureDebugInfo := ""
3778
+ for _, testObjMap := range scope {
3779
+ validationutils.UnusedFunction(testObjMap)
3780
+
3781
+ attr := validationutils.StringSliceToInterface([]string{`$.message.issue.description.long_desc`})
3782
+ validationutils.UnusedFunction(attr)
3783
+
3784
+ validate := validationutils.ArePresent(attr)
3785
+
3786
+ configureDebugInfo = `{"_NAME_":"REQUIRED_DESCRIPTION_LONG","attr":["$.message.issue.description.long_desc"],"_RETURN_":"attr are present","action":["issue"]}`
3787
+
3788
+ if !validate {
3789
+ result := validationutils.ValidationOutput{
3790
+ TestName: "REQUIRED_DESCRIPTION_LONG",
3791
+ Valid: false,
3792
+ Code: 30000,
3793
+ Description: `#### **REQUIRED_DESCRIPTION_LONG**
3794
+
3795
+ - ["$.message.issue.description.long_desc"] must be present in the payload`,
3796
+ DebugInfo: &validationutils.DebugInfo{
3797
+ FedConfig: configureDebugInfo,
3798
+ },
3799
+ }
3800
+ return []validationutils.ValidationOutput{result}, nil
3801
+ }
3802
+
3803
+ }
3804
+
3805
+ result := validationutils.ValidationOutput{
3806
+ TestName: "REQUIRED_DESCRIPTION_LONG",
3807
+ Valid: valid,
3808
+ Code: 0,
3809
+ DebugInfo: &validationutils.DebugInfo{
3810
+ FedConfig: configureDebugInfo,
3811
+ },
3812
+ }
3813
+
3814
+ if valid {
3815
+ result.Code = 200
3816
+ } else {
3817
+ result.Code = 30000
3818
+ }
3819
+
3820
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
3821
+ results = append(results, result)
3822
+ results = append(results, subResults...)
3823
+
3824
+ return results, nil
3825
+ }
3826
+ var REQUIRED_DESCRIPTION_ADDITIONAL_URL = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
3827
+
3828
+ if input.Config.SkipTestsDict != nil {
3829
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_DESCRIPTION_ADDITIONAL_URL"]; skip {
3830
+ return []validationutils.ValidationOutput{}, nil
3831
+ }
3832
+ }
3833
+
3834
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
3835
+
3836
+ subResults := make([]validationutils.ValidationOutput, 0)
3837
+ valid := true
3838
+ configureDebugInfo := ""
3839
+ for _, testObjMap := range scope {
3840
+ validationutils.UnusedFunction(testObjMap)
3841
+
3842
+ attr := validationutils.StringSliceToInterface([]string{`$.message.issue.description.additional_desc.url`})
3843
+ validationutils.UnusedFunction(attr)
3844
+
3845
+ validate := validationutils.ArePresent(attr)
3846
+
3847
+ configureDebugInfo = `{"_NAME_":"REQUIRED_DESCRIPTION_ADDITIONAL_URL","attr":["$.message.issue.description.additional_desc.url"],"_RETURN_":"attr are present","action":["issue"]}`
3848
+
3849
+ if !validate {
3850
+ result := validationutils.ValidationOutput{
3851
+ TestName: "REQUIRED_DESCRIPTION_ADDITIONAL_URL",
3852
+ Valid: false,
3853
+ Code: 30000,
3854
+ Description: `#### **REQUIRED_DESCRIPTION_ADDITIONAL_URL**
3855
+
3856
+ - ["$.message.issue.description.additional_desc.url"] must be present in the payload`,
3857
+ DebugInfo: &validationutils.DebugInfo{
3858
+ FedConfig: configureDebugInfo,
3859
+ },
3860
+ }
3861
+ return []validationutils.ValidationOutput{result}, nil
3862
+ }
3863
+
3864
+ }
3865
+
3866
+ result := validationutils.ValidationOutput{
3867
+ TestName: "REQUIRED_DESCRIPTION_ADDITIONAL_URL",
3868
+ Valid: valid,
3869
+ Code: 0,
3870
+ DebugInfo: &validationutils.DebugInfo{
3871
+ FedConfig: configureDebugInfo,
3872
+ },
3873
+ }
3874
+
3875
+ if valid {
3876
+ result.Code = 200
3877
+ } else {
3878
+ result.Code = 30000
3879
+ }
3880
+
3881
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
3882
+ results = append(results, result)
3883
+ results = append(results, subResults...)
3884
+
3885
+ return results, nil
3886
+ }
3887
+ var REQUIRED_DESCRIPTION_ADDITIONAL_CONTENT_TYPE = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
3888
+
3889
+ if input.Config.SkipTestsDict != nil {
3890
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_DESCRIPTION_ADDITIONAL_CONTENT_TYPE"]; skip {
3891
+ return []validationutils.ValidationOutput{}, nil
3892
+ }
3893
+ }
3894
+
3895
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
3896
+
3897
+ subResults := make([]validationutils.ValidationOutput, 0)
3898
+ valid := true
3899
+ configureDebugInfo := ""
3900
+ for _, testObjMap := range scope {
3901
+ validationutils.UnusedFunction(testObjMap)
3902
+
3903
+ attr := validationutils.StringSliceToInterface([]string{`$.message.issue.description.additional_desc.content_type`})
3904
+ validationutils.UnusedFunction(attr)
3905
+
3906
+ validate := validationutils.ArePresent(attr)
3907
+
3908
+ configureDebugInfo = `{"_NAME_":"REQUIRED_DESCRIPTION_ADDITIONAL_CONTENT_TYPE","attr":["$.message.issue.description.additional_desc.content_type"],"_RETURN_":"attr are present","action":["issue"]}`
3909
+
3910
+ if !validate {
3911
+ result := validationutils.ValidationOutput{
3912
+ TestName: "REQUIRED_DESCRIPTION_ADDITIONAL_CONTENT_TYPE",
3913
+ Valid: false,
3914
+ Code: 30000,
3915
+ Description: `#### **REQUIRED_DESCRIPTION_ADDITIONAL_CONTENT_TYPE**
3916
+
3917
+ - ["$.message.issue.description.additional_desc.content_type"] must be present in the payload`,
3918
+ DebugInfo: &validationutils.DebugInfo{
3919
+ FedConfig: configureDebugInfo,
3920
+ },
3921
+ }
3922
+ return []validationutils.ValidationOutput{result}, nil
3923
+ }
3924
+
3925
+ }
3926
+
3927
+ result := validationutils.ValidationOutput{
3928
+ TestName: "REQUIRED_DESCRIPTION_ADDITIONAL_CONTENT_TYPE",
3929
+ Valid: valid,
3930
+ Code: 0,
3931
+ DebugInfo: &validationutils.DebugInfo{
3932
+ FedConfig: configureDebugInfo,
3933
+ },
3934
+ }
3935
+
3936
+ if valid {
3937
+ result.Code = 200
3938
+ } else {
3939
+ result.Code = 30000
3940
+ }
3941
+
3942
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
3943
+ results = append(results, result)
3944
+ results = append(results, subResults...)
3945
+
3946
+ return results, nil
3947
+ }
3948
+ var REQUIRED_DESCRIPTION_IMAGES = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
3949
+
3950
+ if input.Config.SkipTestsDict != nil {
3951
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_DESCRIPTION_IMAGES"]; skip {
3952
+ return []validationutils.ValidationOutput{}, nil
3953
+ }
3954
+ }
3955
+
3956
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
3957
+
3958
+ subResults := make([]validationutils.ValidationOutput, 0)
3959
+ valid := true
3960
+ configureDebugInfo := ""
3961
+ for _, testObjMap := range scope {
3962
+ validationutils.UnusedFunction(testObjMap)
3963
+
3964
+ attr := validationutils.StringSliceToInterface([]string{`$.message.issue.description.images`})
3965
+ validationutils.UnusedFunction(attr)
3966
+
3967
+ validate := validationutils.ArePresent(attr)
3968
+
3969
+ configureDebugInfo = `{"_NAME_":"REQUIRED_DESCRIPTION_IMAGES","attr":["$.message.issue.description.images"],"_RETURN_":"attr are present","action":["issue"]}`
3970
+
3971
+ if !validate {
3972
+ result := validationutils.ValidationOutput{
3973
+ TestName: "REQUIRED_DESCRIPTION_IMAGES",
3974
+ Valid: false,
3975
+ Code: 30000,
3976
+ Description: `#### **REQUIRED_DESCRIPTION_IMAGES**
3977
+
3978
+ - ["$.message.issue.description.images"] must be present in the payload`,
3979
+ DebugInfo: &validationutils.DebugInfo{
3980
+ FedConfig: configureDebugInfo,
3981
+ },
3982
+ }
3983
+ return []validationutils.ValidationOutput{result}, nil
3984
+ }
3985
+
3986
+ }
3987
+
3988
+ result := validationutils.ValidationOutput{
3989
+ TestName: "REQUIRED_DESCRIPTION_IMAGES",
3990
+ Valid: valid,
3991
+ Code: 0,
3992
+ DebugInfo: &validationutils.DebugInfo{
3993
+ FedConfig: configureDebugInfo,
3994
+ },
3995
+ }
3996
+
3997
+ if valid {
3998
+ result.Code = 200
3999
+ } else {
4000
+ result.Code = 30000
4001
+ }
4002
+
4003
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
4004
+ results = append(results, result)
4005
+ results = append(results, subResults...)
4006
+
4007
+ return results, nil
4008
+ }
4009
+ var REQUIRED_EXPECTED_RESPONSE_TIME = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
4010
+
4011
+ if input.Config.SkipTestsDict != nil {
4012
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_EXPECTED_RESPONSE_TIME"]; skip {
4013
+ return []validationutils.ValidationOutput{}, nil
4014
+ }
4015
+ }
4016
+
4017
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
4018
+
4019
+ subResults := make([]validationutils.ValidationOutput, 0)
4020
+ valid := true
4021
+ configureDebugInfo := ""
4022
+ for _, testObjMap := range scope {
4023
+ validationutils.UnusedFunction(testObjMap)
4024
+
4025
+ attr := validationutils.StringSliceToInterface([]string{`$.message.issue.expected_response_time.duration`})
4026
+ validationutils.UnusedFunction(attr)
4027
+
4028
+ validate := validationutils.ArePresent(attr)
4029
+
4030
+ configureDebugInfo = `{"_NAME_":"REQUIRED_EXPECTED_RESPONSE_TIME","attr":["$.message.issue.expected_response_time.duration"],"_RETURN_":"attr are present","action":["issue"]}`
4031
+
4032
+ if !validate {
4033
+ result := validationutils.ValidationOutput{
4034
+ TestName: "REQUIRED_EXPECTED_RESPONSE_TIME",
4035
+ Valid: false,
4036
+ Code: 30000,
4037
+ Description: `#### **REQUIRED_EXPECTED_RESPONSE_TIME**
4038
+
4039
+ - ["$.message.issue.expected_response_time.duration"] must be present in the payload`,
4040
+ DebugInfo: &validationutils.DebugInfo{
4041
+ FedConfig: configureDebugInfo,
4042
+ },
4043
+ }
4044
+ return []validationutils.ValidationOutput{result}, nil
4045
+ }
4046
+
4047
+ }
4048
+
4049
+ result := validationutils.ValidationOutput{
4050
+ TestName: "REQUIRED_EXPECTED_RESPONSE_TIME",
4051
+ Valid: valid,
4052
+ Code: 0,
4053
+ DebugInfo: &validationutils.DebugInfo{
4054
+ FedConfig: configureDebugInfo,
4055
+ },
4056
+ }
4057
+
4058
+ if valid {
4059
+ result.Code = 200
4060
+ } else {
4061
+ result.Code = 30000
4062
+ }
4063
+
4064
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
4065
+ results = append(results, result)
4066
+ results = append(results, subResults...)
4067
+
4068
+ return results, nil
4069
+ }
4070
+ var REQUIRED_EXPECTED_RESOLUTION_TIME = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
4071
+
4072
+ if input.Config.SkipTestsDict != nil {
4073
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_EXPECTED_RESOLUTION_TIME"]; skip {
4074
+ return []validationutils.ValidationOutput{}, nil
4075
+ }
4076
+ }
4077
+
4078
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
4079
+
4080
+ subResults := make([]validationutils.ValidationOutput, 0)
4081
+ valid := true
4082
+ configureDebugInfo := ""
4083
+ for _, testObjMap := range scope {
4084
+ validationutils.UnusedFunction(testObjMap)
4085
+
4086
+ attr := validationutils.StringSliceToInterface([]string{`$.message.issue.expected_resolution_time.duration`})
4087
+ validationutils.UnusedFunction(attr)
4088
+
4089
+ validate := validationutils.ArePresent(attr)
4090
+
4091
+ configureDebugInfo = `{"_NAME_":"REQUIRED_EXPECTED_RESOLUTION_TIME","attr":["$.message.issue.expected_resolution_time.duration"],"_RETURN_":"attr are present","action":["issue"]}`
4092
+
4093
+ if !validate {
4094
+ result := validationutils.ValidationOutput{
4095
+ TestName: "REQUIRED_EXPECTED_RESOLUTION_TIME",
4096
+ Valid: false,
4097
+ Code: 30000,
4098
+ Description: `#### **REQUIRED_EXPECTED_RESOLUTION_TIME**
4099
+
4100
+ - ["$.message.issue.expected_resolution_time.duration"] must be present in the payload`,
4101
+ DebugInfo: &validationutils.DebugInfo{
4102
+ FedConfig: configureDebugInfo,
4103
+ },
4104
+ }
4105
+ return []validationutils.ValidationOutput{result}, nil
4106
+ }
4107
+
4108
+ }
4109
+
4110
+ result := validationutils.ValidationOutput{
4111
+ TestName: "REQUIRED_EXPECTED_RESOLUTION_TIME",
4112
+ Valid: valid,
4113
+ Code: 0,
4114
+ DebugInfo: &validationutils.DebugInfo{
4115
+ FedConfig: configureDebugInfo,
4116
+ },
4117
+ }
4118
+
4119
+ if valid {
4120
+ result.Code = 200
4121
+ } else {
4122
+ result.Code = 30000
4123
+ }
4124
+
4125
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
4126
+ results = append(results, result)
4127
+ results = append(results, subResults...)
4128
+
4129
+ return results, nil
4130
+ }
4131
+ var REQUIRED_ISSUE_ACTIONS_OPEN = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
4132
+
4133
+ if input.Config.SkipTestsDict != nil {
4134
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_ISSUE_ACTIONS_OPEN"]; skip {
4135
+ return []validationutils.ValidationOutput{}, nil
4136
+ }
4137
+ }
4138
+
4139
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
4140
+
4141
+ subResults := make([]validationutils.ValidationOutput, 0)
4142
+ valid := true
4143
+ configureDebugInfo := ""
4144
+ for _, testObjMap := range scope {
4145
+ validationutils.UnusedFunction(testObjMap)
4146
+
4147
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.issue_actions.complainant_actions[*].complainant_action", true)
4148
+ validationutils.UnusedFunction(attr)
4149
+ validValues := validationutils.StringSliceToInterface([]string{`OPEN`, `CLOSE`, `ESCALATE`})
4150
+ validationutils.UnusedFunction(validValues)
4151
+
4152
+ validate := validationutils.AllIn(attr, validValues)
4153
+
4154
+ configureDebugInfo = `{"_NAME_":"REQUIRED_ISSUE_ACTIONS_OPEN","attr":"$.message.issue.issue_actions.complainant_actions[*].complainant_action","validValues":["OPEN","CLOSE","ESCALATE"],"_RETURN_":"attr all in validValues","action":["issue"]}`
4155
+
4156
+ if !validate {
4157
+ result := validationutils.ValidationOutput{
4158
+ TestName: "REQUIRED_ISSUE_ACTIONS_OPEN",
4159
+ Valid: false,
4160
+ Code: 30000,
4161
+ Description: `#### **REQUIRED_ISSUE_ACTIONS_OPEN**
4162
+
4163
+ - All elements of $.message.issue.issue_actions.complainant_actions[*].complainant_action must be in ["OPEN", "CLOSE", "ESCALATE"]`,
4164
+ DebugInfo: &validationutils.DebugInfo{
4165
+ FedConfig: configureDebugInfo,
4166
+ },
4167
+ }
4168
+ return []validationutils.ValidationOutput{result}, nil
4169
+ }
4170
+
4171
+ }
4172
+
4173
+ result := validationutils.ValidationOutput{
4174
+ TestName: "REQUIRED_ISSUE_ACTIONS_OPEN",
4175
+ Valid: valid,
4176
+ Code: 0,
4177
+ DebugInfo: &validationutils.DebugInfo{
4178
+ FedConfig: configureDebugInfo,
4179
+ },
4180
+ }
4181
+
4182
+ if valid {
4183
+ result.Code = 200
4184
+ } else {
4185
+ result.Code = 30000
4186
+ }
4187
+
4188
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
4189
+ results = append(results, result)
4190
+ results = append(results, subResults...)
4191
+
4192
+ return results, nil
4193
+ }
4194
+ var REQUIRED_CREATED_AT = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
4195
+
4196
+ if input.Config.SkipTestsDict != nil {
4197
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_CREATED_AT"]; skip {
4198
+ return []validationutils.ValidationOutput{}, nil
4199
+ }
4200
+ }
4201
+
4202
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
4203
+
4204
+ subResults := make([]validationutils.ValidationOutput, 0)
4205
+ valid := true
4206
+ configureDebugInfo := ""
4207
+ for _, testObjMap := range scope {
4208
+ validationutils.UnusedFunction(testObjMap)
4209
+
4210
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.created_at", true)
4211
+ validationutils.UnusedFunction(attr)
4212
+
4213
+ validate := validationutils.ArePresent(attr)
4214
+
4215
+ configureDebugInfo = `{"_NAME_":"REQUIRED_CREATED_AT","attr":"$.message.issue.created_at","_RETURN_":"attr are present","action":["issue"]}`
4216
+
4217
+ if !validate {
4218
+ result := validationutils.ValidationOutput{
4219
+ TestName: "REQUIRED_CREATED_AT",
4220
+ Valid: false,
4221
+ Code: 30000,
4222
+ Description: `#### **REQUIRED_CREATED_AT**
4223
+
4224
+ - $.message.issue.created_at must be present in the payload`,
4225
+ DebugInfo: &validationutils.DebugInfo{
4226
+ FedConfig: configureDebugInfo,
4227
+ },
4228
+ }
4229
+ return []validationutils.ValidationOutput{result}, nil
4230
+ }
4231
+
4232
+ }
4233
+
4234
+ result := validationutils.ValidationOutput{
4235
+ TestName: "REQUIRED_CREATED_AT",
4236
+ Valid: valid,
4237
+ Code: 0,
4238
+ DebugInfo: &validationutils.DebugInfo{
4239
+ FedConfig: configureDebugInfo,
4240
+ },
4241
+ }
4242
+
4243
+ if valid {
4244
+ result.Code = 200
4245
+ } else {
4246
+ result.Code = 30000
4247
+ }
4248
+
4249
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
4250
+ results = append(results, result)
4251
+ results = append(results, subResults...)
4252
+
4253
+ return results, nil
4254
+ }
4255
+ var REQUIRED_UPDATED_AT = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
4256
+
4257
+ if input.Config.SkipTestsDict != nil {
4258
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_UPDATED_AT"]; skip {
4259
+ return []validationutils.ValidationOutput{}, nil
4260
+ }
4261
+ }
4262
+
4263
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
4264
+
4265
+ subResults := make([]validationutils.ValidationOutput, 0)
4266
+ valid := true
4267
+ configureDebugInfo := ""
4268
+ for _, testObjMap := range scope {
4269
+ validationutils.UnusedFunction(testObjMap)
4270
+
4271
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.updated_at", true)
4272
+ validationutils.UnusedFunction(attr)
4273
+
4274
+ validate := validationutils.ArePresent(attr)
4275
+
4276
+ configureDebugInfo = `{"_NAME_":"REQUIRED_UPDATED_AT","attr":"$.message.issue.updated_at","_RETURN_":"attr are present","action":["issue"]}`
4277
+
4278
+ if !validate {
4279
+ result := validationutils.ValidationOutput{
4280
+ TestName: "REQUIRED_UPDATED_AT",
4281
+ Valid: false,
4282
+ Code: 30000,
4283
+ Description: `#### **REQUIRED_UPDATED_AT**
4284
+
4285
+ - $.message.issue.updated_at must be present in the payload`,
4286
+ DebugInfo: &validationutils.DebugInfo{
4287
+ FedConfig: configureDebugInfo,
4288
+ },
4289
+ }
4290
+ return []validationutils.ValidationOutput{result}, nil
4291
+ }
4292
+
4293
+ }
4294
+
4295
+ result := validationutils.ValidationOutput{
4296
+ TestName: "REQUIRED_UPDATED_AT",
4297
+ Valid: valid,
4298
+ Code: 0,
4299
+ DebugInfo: &validationutils.DebugInfo{
4300
+ FedConfig: configureDebugInfo,
4301
+ },
4302
+ }
4303
+
4304
+ if valid {
4305
+ result.Code = 200
4306
+ } else {
4307
+ result.Code = 30000
4308
+ }
4309
+
4310
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
4311
+ results = append(results, result)
4312
+ results = append(results, subResults...)
4313
+
4314
+ return results, nil
4315
+ }
4316
+
4317
+ var testFunctions = validationutils.TestFunctionArray{
4318
+ REQUIRED_ISSUE_ID,
4319
+ REQUIRED_ISSUE_STATUS,
4320
+ REQUIRED_ISSUE_CATEGORY,
4321
+ REQUIRED_ISSUE_SUB_CATEGORY,
4322
+ REQUIRED_COMPLAINANT_PERSON_NAME,
4323
+ REQUIRED_COMPLAINANT_CONTACT_PHONE,
4324
+ REQUIRED_ORDER_ID,
4325
+ REQUIRED_ORDER_ITEMS,
4326
+ REQUIRED_ORDER_ITEMS_QUANTITY,
4327
+ REQUIRED_FULFILLMENT_ID,
4328
+ REQUIRED_PROVIDER_ID,
4329
+ REQUIRED_DESCRIPTION,
4330
+ REQUIRED_DESCRIPTION_SHORT,
4331
+ REQUIRED_DESCRIPTION_LONG,
4332
+ REQUIRED_DESCRIPTION_ADDITIONAL_URL,
4333
+ REQUIRED_DESCRIPTION_ADDITIONAL_CONTENT_TYPE,
4334
+ REQUIRED_DESCRIPTION_IMAGES,
4335
+ REQUIRED_EXPECTED_RESPONSE_TIME,
4336
+ REQUIRED_EXPECTED_RESOLUTION_TIME,
4337
+ REQUIRED_ISSUE_ACTIONS_OPEN,
4338
+ REQUIRED_CREATED_AT,
4339
+ REQUIRED_UPDATED_AT,
4340
+ }
4341
+
4342
+ allResults := make([]validationutils.ValidationOutput, 0)
4343
+
4344
+ for _, testFunc := range testFunctions {
4345
+ results, err := testFunc(input)
4346
+ if err != nil {
4347
+ return nil, err
4348
+ }
4349
+ allResults = append(allResults, results...)
4350
+ }
4351
+
4352
+ subResults = allResults
4353
+ // if all subResults are valid, then valid is true
4354
+ valid = true
4355
+ for _, res := range subResults {
4356
+ if !res.Valid {
4357
+ valid = false
4358
+ break
4359
+ }
4360
+ }
4361
+
4362
+ configureDebugInfo = `NESTED_TEST_OBJECT`
4363
+
4364
+ }
4365
+
4366
+ result := validationutils.ValidationOutput{
4367
+ TestName: "ISSUE_VALIDATION_OPEN",
4368
+ Valid: valid,
4369
+ Code: 0,
4370
+ DebugInfo: &validationutils.DebugInfo{
4371
+ FedConfig: configureDebugInfo,
4372
+ },
4373
+ }
4374
+
4375
+ if valid {
4376
+ result.Code = 200
4377
+ } else {
4378
+ result.Code = 30000
4379
+ }
4380
+
4381
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
4382
+ results = append(results, result)
4383
+ results = append(results, subResults...)
4384
+
4385
+ return results, nil
4386
+ }
4387
+ var ISSUE_VALIDATION_CLOSED = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
4388
+
4389
+ if input.Config.SkipTestsDict != nil {
4390
+ if _, skip := input.Config.SkipTestsDict["ISSUE_VALIDATION_CLOSED"]; skip {
4391
+ return []validationutils.ValidationOutput{}, nil
4392
+ }
4393
+ }
4394
+
4395
+ scope := validationutils.GetJsonPath(input.Payload, "$.message.issue[?(@.status=='CLOSED')]", true)
4396
+
4397
+ subResults := make([]validationutils.ValidationOutput, 0)
4398
+ valid := true
4399
+ configureDebugInfo := ""
4400
+ for _, testObjMap := range scope {
4401
+ validationutils.UnusedFunction(testObjMap)
4402
+
4403
+ var REQUIRED_ISSUE_ID_CLOSED = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
4404
+
4405
+ if input.Config.SkipTestsDict != nil {
4406
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_ISSUE_ID_CLOSED"]; skip {
4407
+ return []validationutils.ValidationOutput{}, nil
4408
+ }
4409
+ }
4410
+
4411
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
4412
+
4413
+ subResults := make([]validationutils.ValidationOutput, 0)
4414
+ valid := true
4415
+ configureDebugInfo := ""
4416
+ for _, testObjMap := range scope {
4417
+ validationutils.UnusedFunction(testObjMap)
4418
+
4419
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.id", true)
4420
+ validationutils.UnusedFunction(attr)
4421
+
4422
+ validate := validationutils.ArePresent(attr)
4423
+
4424
+ configureDebugInfo = `{"_NAME_":"REQUIRED_ISSUE_ID_CLOSED","attr":"$.message.issue.id","_RETURN_":"attr are present","action":["issue"]}`
4425
+
4426
+ if !validate {
4427
+ result := validationutils.ValidationOutput{
4428
+ TestName: "REQUIRED_ISSUE_ID_CLOSED",
4429
+ Valid: false,
4430
+ Code: 30000,
4431
+ Description: `#### **REQUIRED_ISSUE_ID_CLOSED**
4432
+
4433
+ - $.message.issue.id must be present in the payload`,
4434
+ DebugInfo: &validationutils.DebugInfo{
4435
+ FedConfig: configureDebugInfo,
4436
+ },
4437
+ }
4438
+ return []validationutils.ValidationOutput{result}, nil
4439
+ }
4440
+
4441
+ }
4442
+
4443
+ result := validationutils.ValidationOutput{
4444
+ TestName: "REQUIRED_ISSUE_ID_CLOSED",
4445
+ Valid: valid,
4446
+ Code: 0,
4447
+ DebugInfo: &validationutils.DebugInfo{
4448
+ FedConfig: configureDebugInfo,
4449
+ },
4450
+ }
4451
+
4452
+ if valid {
4453
+ result.Code = 200
4454
+ } else {
4455
+ result.Code = 30000
4456
+ }
4457
+
4458
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
4459
+ results = append(results, result)
4460
+ results = append(results, subResults...)
4461
+
4462
+ return results, nil
4463
+ }
4464
+ var REQUIRED_ISSUE_STATUS = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
4465
+
4466
+ if input.Config.SkipTestsDict != nil {
4467
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_ISSUE_STATUS"]; skip {
4468
+ return []validationutils.ValidationOutput{}, nil
4469
+ }
4470
+ }
4471
+
4472
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
4473
+
4474
+ subResults := make([]validationutils.ValidationOutput, 0)
4475
+ valid := true
4476
+ configureDebugInfo := ""
4477
+ for _, testObjMap := range scope {
4478
+ validationutils.UnusedFunction(testObjMap)
4479
+
4480
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.status", true)
4481
+ validationutils.UnusedFunction(attr)
4482
+ validValues := validationutils.StringSliceToInterface([]string{`OPEN`, `CLOSED`})
4483
+ validationutils.UnusedFunction(validValues)
4484
+
4485
+ validate := validationutils.AllIn(attr, validValues)
4486
+
4487
+ configureDebugInfo = `{"_NAME_":"REQUIRED_ISSUE_STATUS","attr":"$.message.issue.status","validValues":["OPEN","CLOSED"],"_RETURN_":"attr all in validValues","action":["issue"]}`
4488
+
4489
+ if !validate {
4490
+ result := validationutils.ValidationOutput{
4491
+ TestName: "REQUIRED_ISSUE_STATUS",
4492
+ Valid: false,
4493
+ Code: 30000,
4494
+ Description: `#### **REQUIRED_ISSUE_STATUS**
4495
+
4496
+ - All elements of $.message.issue.status must be in ["OPEN", "CLOSED"]`,
4497
+ DebugInfo: &validationutils.DebugInfo{
4498
+ FedConfig: configureDebugInfo,
4499
+ },
4500
+ }
4501
+ return []validationutils.ValidationOutput{result}, nil
4502
+ }
4503
+
4504
+ }
4505
+
4506
+ result := validationutils.ValidationOutput{
4507
+ TestName: "REQUIRED_ISSUE_STATUS",
4508
+ Valid: valid,
4509
+ Code: 0,
4510
+ DebugInfo: &validationutils.DebugInfo{
4511
+ FedConfig: configureDebugInfo,
4512
+ },
4513
+ }
4514
+
4515
+ if valid {
4516
+ result.Code = 200
4517
+ } else {
4518
+ result.Code = 30000
4519
+ }
4520
+
4521
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
4522
+ results = append(results, result)
4523
+ results = append(results, subResults...)
4524
+
4525
+ return results, nil
4526
+ }
4527
+ var REQUIRED_ISSUE_ACTIONS_CLOSED = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
4528
+
4529
+ if input.Config.SkipTestsDict != nil {
4530
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_ISSUE_ACTIONS_CLOSED"]; skip {
4531
+ return []validationutils.ValidationOutput{}, nil
4532
+ }
4533
+ }
4534
+
4535
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
4536
+
4537
+ subResults := make([]validationutils.ValidationOutput, 0)
4538
+ valid := true
4539
+ configureDebugInfo := ""
4540
+ for _, testObjMap := range scope {
4541
+ validationutils.UnusedFunction(testObjMap)
4542
+
4543
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.issue_actions.complainant_actions[*].complainant_action", true)
4544
+ validationutils.UnusedFunction(attr)
4545
+ validValues := validationutils.StringSliceToInterface([]string{`OPEN`, `CLOSE`, `ESCALATE`})
4546
+ validationutils.UnusedFunction(validValues)
4547
+
4548
+ validate := validationutils.AllIn(attr, validValues)
4549
+
4550
+ configureDebugInfo = `{"_NAME_":"REQUIRED_ISSUE_ACTIONS_CLOSED","attr":"$.message.issue.issue_actions.complainant_actions[*].complainant_action","validValues":["OPEN","CLOSE","ESCALATE"],"_RETURN_":"attr all in validValues","action":["issue"]}`
4551
+
4552
+ if !validate {
4553
+ result := validationutils.ValidationOutput{
4554
+ TestName: "REQUIRED_ISSUE_ACTIONS_CLOSED",
4555
+ Valid: false,
4556
+ Code: 30000,
4557
+ Description: `#### **REQUIRED_ISSUE_ACTIONS_CLOSED**
4558
+
4559
+ - All elements of $.message.issue.issue_actions.complainant_actions[*].complainant_action must be in ["OPEN", "CLOSE", "ESCALATE"]`,
4560
+ DebugInfo: &validationutils.DebugInfo{
4561
+ FedConfig: configureDebugInfo,
4562
+ },
4563
+ }
4564
+ return []validationutils.ValidationOutput{result}, nil
4565
+ }
4566
+
4567
+ }
4568
+
4569
+ result := validationutils.ValidationOutput{
4570
+ TestName: "REQUIRED_ISSUE_ACTIONS_CLOSED",
4571
+ Valid: valid,
4572
+ Code: 0,
4573
+ DebugInfo: &validationutils.DebugInfo{
4574
+ FedConfig: configureDebugInfo,
4575
+ },
4576
+ }
4577
+
4578
+ if valid {
4579
+ result.Code = 200
4580
+ } else {
4581
+ result.Code = 30000
4582
+ }
4583
+
4584
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
4585
+ results = append(results, result)
4586
+ results = append(results, subResults...)
4587
+
4588
+ return results, nil
4589
+ }
4590
+ var REQUIRED_CREATED_AT_CLOSED = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
4591
+
4592
+ if input.Config.SkipTestsDict != nil {
4593
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_CREATED_AT_CLOSED"]; skip {
4594
+ return []validationutils.ValidationOutput{}, nil
4595
+ }
4596
+ }
4597
+
4598
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
4599
+
4600
+ subResults := make([]validationutils.ValidationOutput, 0)
4601
+ valid := true
4602
+ configureDebugInfo := ""
4603
+ for _, testObjMap := range scope {
4604
+ validationutils.UnusedFunction(testObjMap)
4605
+
4606
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.created_at", true)
4607
+ validationutils.UnusedFunction(attr)
4608
+
4609
+ validate := validationutils.ArePresent(attr)
4610
+
4611
+ configureDebugInfo = `{"_NAME_":"REQUIRED_CREATED_AT_CLOSED","attr":"$.message.issue.created_at","_RETURN_":"attr are present","action":["issue"]}`
4612
+
4613
+ if !validate {
4614
+ result := validationutils.ValidationOutput{
4615
+ TestName: "REQUIRED_CREATED_AT_CLOSED",
4616
+ Valid: false,
4617
+ Code: 30000,
4618
+ Description: `#### **REQUIRED_CREATED_AT_CLOSED**
4619
+
4620
+ - $.message.issue.created_at must be present in the payload`,
4621
+ DebugInfo: &validationutils.DebugInfo{
4622
+ FedConfig: configureDebugInfo,
4623
+ },
4624
+ }
4625
+ return []validationutils.ValidationOutput{result}, nil
4626
+ }
4627
+
4628
+ }
4629
+
4630
+ result := validationutils.ValidationOutput{
4631
+ TestName: "REQUIRED_CREATED_AT_CLOSED",
4632
+ Valid: valid,
4633
+ Code: 0,
4634
+ DebugInfo: &validationutils.DebugInfo{
4635
+ FedConfig: configureDebugInfo,
4636
+ },
4637
+ }
4638
+
4639
+ if valid {
4640
+ result.Code = 200
4641
+ } else {
4642
+ result.Code = 30000
4643
+ }
4644
+
4645
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
4646
+ results = append(results, result)
4647
+ results = append(results, subResults...)
4648
+
4649
+ return results, nil
4650
+ }
4651
+ var REQUIRED_UPDATED_AT_CLOSED = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
4652
+
4653
+ if input.Config.SkipTestsDict != nil {
4654
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_UPDATED_AT_CLOSED"]; skip {
4655
+ return []validationutils.ValidationOutput{}, nil
4656
+ }
4657
+ }
4658
+
4659
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
4660
+
4661
+ subResults := make([]validationutils.ValidationOutput, 0)
4662
+ valid := true
4663
+ configureDebugInfo := ""
4664
+ for _, testObjMap := range scope {
4665
+ validationutils.UnusedFunction(testObjMap)
4666
+
4667
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.updated_at", true)
4668
+ validationutils.UnusedFunction(attr)
4669
+
4670
+ validate := validationutils.ArePresent(attr)
4671
+
4672
+ configureDebugInfo = `{"_NAME_":"REQUIRED_UPDATED_AT_CLOSED","attr":"$.message.issue.updated_at","_RETURN_":"attr are present","action":["issue"]}`
4673
+
4674
+ if !validate {
4675
+ result := validationutils.ValidationOutput{
4676
+ TestName: "REQUIRED_UPDATED_AT_CLOSED",
4677
+ Valid: false,
4678
+ Code: 30000,
4679
+ Description: `#### **REQUIRED_UPDATED_AT_CLOSED**
4680
+
4681
+ - $.message.issue.updated_at must be present in the payload`,
4682
+ DebugInfo: &validationutils.DebugInfo{
4683
+ FedConfig: configureDebugInfo,
4684
+ },
4685
+ }
4686
+ return []validationutils.ValidationOutput{result}, nil
4687
+ }
4688
+
4689
+ }
4690
+
4691
+ result := validationutils.ValidationOutput{
4692
+ TestName: "REQUIRED_UPDATED_AT_CLOSED",
4693
+ Valid: valid,
4694
+ Code: 0,
4695
+ DebugInfo: &validationutils.DebugInfo{
4696
+ FedConfig: configureDebugInfo,
4697
+ },
4698
+ }
4699
+
4700
+ if valid {
4701
+ result.Code = 200
4702
+ } else {
4703
+ result.Code = 30000
4704
+ }
4705
+
4706
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
4707
+ results = append(results, result)
4708
+ results = append(results, subResults...)
4709
+
4710
+ return results, nil
4711
+ }
4712
+
4713
+ var testFunctions = validationutils.TestFunctionArray{
4714
+ REQUIRED_ISSUE_ID_CLOSED,
4715
+ REQUIRED_ISSUE_STATUS,
4716
+ REQUIRED_ISSUE_ACTIONS_CLOSED,
4717
+ REQUIRED_CREATED_AT_CLOSED,
4718
+ REQUIRED_UPDATED_AT_CLOSED,
4719
+ }
4720
+
4721
+ allResults := make([]validationutils.ValidationOutput, 0)
4722
+
4723
+ for _, testFunc := range testFunctions {
4724
+ results, err := testFunc(input)
4725
+ if err != nil {
4726
+ return nil, err
4727
+ }
4728
+ allResults = append(allResults, results...)
4729
+ }
4730
+
4731
+ subResults = allResults
4732
+ // if all subResults are valid, then valid is true
4733
+ valid = true
4734
+ for _, res := range subResults {
4735
+ if !res.Valid {
4736
+ valid = false
4737
+ break
4738
+ }
4739
+ }
4740
+
4741
+ configureDebugInfo = `NESTED_TEST_OBJECT`
4742
+
4743
+ }
4744
+
4745
+ result := validationutils.ValidationOutput{
4746
+ TestName: "ISSUE_VALIDATION_CLOSED",
4747
+ Valid: valid,
4748
+ Code: 0,
4749
+ DebugInfo: &validationutils.DebugInfo{
4750
+ FedConfig: configureDebugInfo,
4751
+ },
4752
+ }
4753
+
4754
+ if valid {
4755
+ result.Code = 200
4756
+ } else {
4757
+ result.Code = 30000
4758
+ }
4759
+
4760
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
4761
+ results = append(results, result)
4762
+ results = append(results, subResults...)
4763
+
4764
+ return results, nil
4765
+ }
4766
+
4767
+ var testFunctions = validationutils.TestFunctionArray{
4768
+ ISSUE_VALIDATION_OPEN,
4769
+ ISSUE_VALIDATION_CLOSED,
4770
+ }
4771
+
4772
+ allResults := make([]validationutils.ValidationOutput, 0)
4773
+
4774
+ for _, testFunc := range testFunctions {
4775
+ results, err := testFunc(input)
4776
+ if err != nil {
4777
+ return nil, err
4778
+ }
4779
+ allResults = append(allResults, results...)
4780
+ }
4781
+
4782
+ subResults = allResults
4783
+ // if all subResults are valid, then valid is true
4784
+ valid = true
4785
+ for _, res := range subResults {
4786
+ if !res.Valid {
4787
+ valid = false
4788
+ break
4789
+ }
4790
+ }
4791
+
4792
+ configureDebugInfo = `NESTED_TEST_OBJECT`
4793
+
4794
+ }
4795
+
4796
+ result := validationutils.ValidationOutput{
4797
+ TestName: "ISSUE_VALIDATION_VERSION_100",
4798
+ Valid: valid,
4799
+ Code: 0,
4800
+ DebugInfo: &validationutils.DebugInfo{
4801
+ FedConfig: configureDebugInfo,
4802
+ },
4803
+ }
4804
+
4805
+ if valid {
4806
+ result.Code = 200
4807
+ } else {
4808
+ result.Code = 30000
4809
+ }
4810
+
4811
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
4812
+ results = append(results, result)
4813
+ results = append(results, subResults...)
4814
+
4815
+ return results, nil
4816
+ }
4817
+
4818
+ var testFunctions = validationutils.TestFunctionArray{
4819
+ REQUIRED_CONTEXT_FIELDS,
4820
+ ISSUE_VALIDATION_VERSION_200,
4821
+ ISSUE_VALIDATION_VERSION_100,
4822
+ }
4823
+
4824
+ allResults := make([]validationutils.ValidationOutput, 0)
4825
+
4826
+ for _, testFunc := range testFunctions {
4827
+ results, err := testFunc(input)
4828
+ if err != nil {
4829
+ return nil, err
4830
+ }
4831
+ allResults = append(allResults, results...)
4832
+ }
4833
+
4834
+ subResults = allResults
4835
+ // if all subResults are valid, then valid is true
4836
+ valid = true
4837
+ for _, res := range subResults {
4838
+ if !res.Valid {
4839
+ valid = false
4840
+ break
4841
+ }
4842
+ }
4843
+
4844
+ configureDebugInfo = `NESTED_TEST_OBJECT`
4845
+
4846
+ }
4847
+
4848
+ result := validationutils.ValidationOutput{
4849
+ TestName: "IssueValidations",
4850
+ Valid: valid,
4851
+ Code: 0,
4852
+ DebugInfo: &validationutils.DebugInfo{
4853
+ FedConfig: configureDebugInfo,
4854
+ },
4855
+ }
4856
+
4857
+ if valid {
4858
+ result.Code = 200
4859
+ } else {
4860
+ result.Code = 30000
4861
+ }
4862
+
4863
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
4864
+ results = append(results, result)
4865
+ results = append(results, subResults...)
4866
+
4867
+ return results, nil
4868
+ }