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,1938 @@
1
+ // Code generated by github.com/ONDC-Official/automation-validation-compiler, DO NOT EDIT.
2
+
3
+ package jsonvalidations
4
+
5
+ import (
6
+ "validationpkg/validationutils"
7
+ )
8
+
9
+ func On_issue_status_Tests(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
10
+ totalResults, err := On_issue_statusValidations(input)
11
+ if err != nil {
12
+ return nil, err
13
+ }
14
+
15
+ if !input.Config.Debug {
16
+ for i := range totalResults {
17
+ totalResults[i].DebugInfo = nil
18
+ }
19
+ }
20
+
21
+ if input.Config.HideParentErrors {
22
+ // Delete results with valid false and no description
23
+ filtered := make([]validationutils.ValidationOutput, 0)
24
+ for _, r := range totalResults {
25
+ if !r.Valid && r.Description == "" {
26
+ continue
27
+ }
28
+ filtered = append(filtered, r)
29
+ }
30
+ totalResults = filtered
31
+ }
32
+
33
+ if input.Config.OnlyInvalid {
34
+ res := make([]validationutils.ValidationOutput, 0)
35
+ for _, r := range totalResults {
36
+ if !r.Valid {
37
+ res = append(res, r)
38
+ }
39
+ }
40
+
41
+ if len(res) == 0 {
42
+ // Find the overall test result
43
+ var targetSuccess *validationutils.ValidationOutput
44
+ for i := range totalResults {
45
+ if totalResults[i].TestName == "On_issue_statusValidations" {
46
+ targetSuccess = &totalResults[i]
47
+ break
48
+ }
49
+ }
50
+
51
+ if targetSuccess == nil {
52
+ panic("Critical: Overall test result not found")
53
+ }
54
+
55
+ return []validationutils.ValidationOutput{*targetSuccess}, nil
56
+ }
57
+
58
+ return res, nil
59
+ }
60
+
61
+ return totalResults, nil
62
+ }
63
+
64
+ var On_issue_statusValidations = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
65
+
66
+ if input.Config.SkipTestsDict != nil {
67
+ if _, skip := input.Config.SkipTestsDict["On_issue_statusValidations"]; skip {
68
+ return []validationutils.ValidationOutput{}, nil
69
+ }
70
+ }
71
+
72
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
73
+
74
+ subResults := make([]validationutils.ValidationOutput, 0)
75
+ valid := true
76
+ configureDebugInfo := ""
77
+ for _, testObjMap := range scope {
78
+ validationutils.UnusedFunction(testObjMap)
79
+
80
+ var REQUIRED_CONTEXT_FIELDS = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
81
+
82
+ if input.Config.SkipTestsDict != nil {
83
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_CONTEXT_FIELDS"]; skip {
84
+ return []validationutils.ValidationOutput{}, nil
85
+ }
86
+ }
87
+
88
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
89
+
90
+ subResults := make([]validationutils.ValidationOutput, 0)
91
+ valid := true
92
+ configureDebugInfo := ""
93
+ for _, testObjMap := range scope {
94
+ validationutils.UnusedFunction(testObjMap)
95
+
96
+ var REQUIRED_CONTEXT_DOMAIN = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
97
+
98
+ if input.Config.SkipTestsDict != nil {
99
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_CONTEXT_DOMAIN"]; skip {
100
+ return []validationutils.ValidationOutput{}, nil
101
+ }
102
+ }
103
+
104
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
105
+
106
+ subResults := make([]validationutils.ValidationOutput, 0)
107
+ valid := true
108
+ configureDebugInfo := ""
109
+ for _, testObjMap := range scope {
110
+ validationutils.UnusedFunction(testObjMap)
111
+
112
+ attr := validationutils.GetJsonPath(testObjMap, "$.context.domain", true)
113
+ validationutils.UnusedFunction(attr)
114
+
115
+ validate := validationutils.ArePresent(attr)
116
+
117
+ configureDebugInfo = `{"_NAME_":"REQUIRED_CONTEXT_DOMAIN","attr":"$.context.domain","_RETURN_":"attr are present"}`
118
+
119
+ if !validate {
120
+ result := validationutils.ValidationOutput{
121
+ TestName: "REQUIRED_CONTEXT_DOMAIN",
122
+ Valid: false,
123
+ Code: 30000,
124
+ Description: `#### **REQUIRED_CONTEXT_DOMAIN**
125
+
126
+ - $.context.domain must be present in the payload`,
127
+ DebugInfo: &validationutils.DebugInfo{
128
+ FedConfig: configureDebugInfo,
129
+ },
130
+ }
131
+ return []validationutils.ValidationOutput{result}, nil
132
+ }
133
+
134
+ }
135
+
136
+ result := validationutils.ValidationOutput{
137
+ TestName: "REQUIRED_CONTEXT_DOMAIN",
138
+ Valid: valid,
139
+ Code: 0,
140
+ DebugInfo: &validationutils.DebugInfo{
141
+ FedConfig: configureDebugInfo,
142
+ },
143
+ }
144
+
145
+ if valid {
146
+ result.Code = 200
147
+ } else {
148
+ result.Code = 30000
149
+ }
150
+
151
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
152
+ results = append(results, result)
153
+ results = append(results, subResults...)
154
+
155
+ return results, nil
156
+ }
157
+ var REQUIRED_CONTEXT_COUNTRY = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
158
+
159
+ if input.Config.SkipTestsDict != nil {
160
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_CONTEXT_COUNTRY"]; skip {
161
+ return []validationutils.ValidationOutput{}, nil
162
+ }
163
+ }
164
+
165
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
166
+
167
+ subResults := make([]validationutils.ValidationOutput, 0)
168
+ valid := true
169
+ configureDebugInfo := ""
170
+ for _, testObjMap := range scope {
171
+ validationutils.UnusedFunction(testObjMap)
172
+
173
+ attr := validationutils.StringSliceToInterface([]string{`$.context.location.country.code`})
174
+ validationutils.UnusedFunction(attr)
175
+
176
+ validate := validationutils.ArePresent(attr)
177
+
178
+ configureDebugInfo = `{"_NAME_":"REQUIRED_CONTEXT_COUNTRY","attr":["$.context.location.country.code"],"_RETURN_":"attr are present"}`
179
+
180
+ if !validate {
181
+ result := validationutils.ValidationOutput{
182
+ TestName: "REQUIRED_CONTEXT_COUNTRY",
183
+ Valid: false,
184
+ Code: 30000,
185
+ Description: `#### **REQUIRED_CONTEXT_COUNTRY**
186
+
187
+ - ["$.context.location.country.code"] must be present in the payload`,
188
+ DebugInfo: &validationutils.DebugInfo{
189
+ FedConfig: configureDebugInfo,
190
+ },
191
+ }
192
+ return []validationutils.ValidationOutput{result}, nil
193
+ }
194
+
195
+ }
196
+
197
+ result := validationutils.ValidationOutput{
198
+ TestName: "REQUIRED_CONTEXT_COUNTRY",
199
+ Valid: valid,
200
+ Code: 0,
201
+ DebugInfo: &validationutils.DebugInfo{
202
+ FedConfig: configureDebugInfo,
203
+ },
204
+ }
205
+
206
+ if valid {
207
+ result.Code = 200
208
+ } else {
209
+ result.Code = 30000
210
+ }
211
+
212
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
213
+ results = append(results, result)
214
+ results = append(results, subResults...)
215
+
216
+ return results, nil
217
+ }
218
+ var REQUIRED_CONTEXT_CITY = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
219
+
220
+ if input.Config.SkipTestsDict != nil {
221
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_CONTEXT_CITY"]; skip {
222
+ return []validationutils.ValidationOutput{}, nil
223
+ }
224
+ }
225
+
226
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
227
+
228
+ subResults := make([]validationutils.ValidationOutput, 0)
229
+ valid := true
230
+ configureDebugInfo := ""
231
+ for _, testObjMap := range scope {
232
+ validationutils.UnusedFunction(testObjMap)
233
+
234
+ attr := validationutils.StringSliceToInterface([]string{`$.context.location.city.code`})
235
+ validationutils.UnusedFunction(attr)
236
+
237
+ validate := validationutils.ArePresent(attr)
238
+
239
+ configureDebugInfo = `{"_NAME_":"REQUIRED_CONTEXT_CITY","attr":["$.context.location.city.code"],"_RETURN_":"attr are present"}`
240
+
241
+ if !validate {
242
+ result := validationutils.ValidationOutput{
243
+ TestName: "REQUIRED_CONTEXT_CITY",
244
+ Valid: false,
245
+ Code: 30000,
246
+ Description: `#### **REQUIRED_CONTEXT_CITY**
247
+
248
+ - ["$.context.location.city.code"] must be present in the payload`,
249
+ DebugInfo: &validationutils.DebugInfo{
250
+ FedConfig: configureDebugInfo,
251
+ },
252
+ }
253
+ return []validationutils.ValidationOutput{result}, nil
254
+ }
255
+
256
+ }
257
+
258
+ result := validationutils.ValidationOutput{
259
+ TestName: "REQUIRED_CONTEXT_CITY",
260
+ Valid: valid,
261
+ Code: 0,
262
+ DebugInfo: &validationutils.DebugInfo{
263
+ FedConfig: configureDebugInfo,
264
+ },
265
+ }
266
+
267
+ if valid {
268
+ result.Code = 200
269
+ } else {
270
+ result.Code = 30000
271
+ }
272
+
273
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
274
+ results = append(results, result)
275
+ results = append(results, subResults...)
276
+
277
+ return results, nil
278
+ }
279
+ var REQUIRED_CONTEXT_TRANSACTION_ID = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
280
+
281
+ if input.Config.SkipTestsDict != nil {
282
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_CONTEXT_TRANSACTION_ID"]; skip {
283
+ return []validationutils.ValidationOutput{}, nil
284
+ }
285
+ }
286
+
287
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
288
+
289
+ subResults := make([]validationutils.ValidationOutput, 0)
290
+ valid := true
291
+ configureDebugInfo := ""
292
+ for _, testObjMap := range scope {
293
+ validationutils.UnusedFunction(testObjMap)
294
+
295
+ attr := validationutils.GetJsonPath(testObjMap, "$.context.transaction_id", true)
296
+ validationutils.UnusedFunction(attr)
297
+
298
+ validate := validationutils.ArePresent(attr)
299
+
300
+ configureDebugInfo = `{"_NAME_":"REQUIRED_CONTEXT_TRANSACTION_ID","attr":"$.context.transaction_id","_RETURN_":"attr are present"}`
301
+
302
+ if !validate {
303
+ result := validationutils.ValidationOutput{
304
+ TestName: "REQUIRED_CONTEXT_TRANSACTION_ID",
305
+ Valid: false,
306
+ Code: 30000,
307
+ Description: `#### **REQUIRED_CONTEXT_TRANSACTION_ID**
308
+
309
+ - $.context.transaction_id must be present in the payload`,
310
+ DebugInfo: &validationutils.DebugInfo{
311
+ FedConfig: configureDebugInfo,
312
+ },
313
+ }
314
+ return []validationutils.ValidationOutput{result}, nil
315
+ }
316
+
317
+ }
318
+
319
+ result := validationutils.ValidationOutput{
320
+ TestName: "REQUIRED_CONTEXT_TRANSACTION_ID",
321
+ Valid: valid,
322
+ Code: 0,
323
+ DebugInfo: &validationutils.DebugInfo{
324
+ FedConfig: configureDebugInfo,
325
+ },
326
+ }
327
+
328
+ if valid {
329
+ result.Code = 200
330
+ } else {
331
+ result.Code = 30000
332
+ }
333
+
334
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
335
+ results = append(results, result)
336
+ results = append(results, subResults...)
337
+
338
+ return results, nil
339
+ }
340
+ var REQUIRED_CONTEXT_MESSAGE_ID = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
341
+
342
+ if input.Config.SkipTestsDict != nil {
343
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_CONTEXT_MESSAGE_ID"]; skip {
344
+ return []validationutils.ValidationOutput{}, nil
345
+ }
346
+ }
347
+
348
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
349
+
350
+ subResults := make([]validationutils.ValidationOutput, 0)
351
+ valid := true
352
+ configureDebugInfo := ""
353
+ for _, testObjMap := range scope {
354
+ validationutils.UnusedFunction(testObjMap)
355
+
356
+ attr := validationutils.GetJsonPath(testObjMap, "$.context.message_id", true)
357
+ validationutils.UnusedFunction(attr)
358
+
359
+ validate := validationutils.ArePresent(attr)
360
+
361
+ configureDebugInfo = `{"_NAME_":"REQUIRED_CONTEXT_MESSAGE_ID","attr":"$.context.message_id","_RETURN_":"attr are present"}`
362
+
363
+ if !validate {
364
+ result := validationutils.ValidationOutput{
365
+ TestName: "REQUIRED_CONTEXT_MESSAGE_ID",
366
+ Valid: false,
367
+ Code: 30000,
368
+ Description: `#### **REQUIRED_CONTEXT_MESSAGE_ID**
369
+
370
+ - $.context.message_id must be present in the payload`,
371
+ DebugInfo: &validationutils.DebugInfo{
372
+ FedConfig: configureDebugInfo,
373
+ },
374
+ }
375
+ return []validationutils.ValidationOutput{result}, nil
376
+ }
377
+
378
+ }
379
+
380
+ result := validationutils.ValidationOutput{
381
+ TestName: "REQUIRED_CONTEXT_MESSAGE_ID",
382
+ Valid: valid,
383
+ Code: 0,
384
+ DebugInfo: &validationutils.DebugInfo{
385
+ FedConfig: configureDebugInfo,
386
+ },
387
+ }
388
+
389
+ if valid {
390
+ result.Code = 200
391
+ } else {
392
+ result.Code = 30000
393
+ }
394
+
395
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
396
+ results = append(results, result)
397
+ results = append(results, subResults...)
398
+
399
+ return results, nil
400
+ }
401
+ var REQUIRED_CONTEXT_ACTION = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
402
+
403
+ if input.Config.SkipTestsDict != nil {
404
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_CONTEXT_ACTION"]; skip {
405
+ return []validationutils.ValidationOutput{}, nil
406
+ }
407
+ }
408
+
409
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
410
+
411
+ subResults := make([]validationutils.ValidationOutput, 0)
412
+ valid := true
413
+ configureDebugInfo := ""
414
+ for _, testObjMap := range scope {
415
+ validationutils.UnusedFunction(testObjMap)
416
+
417
+ attr := validationutils.GetJsonPath(testObjMap, "$.context.action", true)
418
+ validationutils.UnusedFunction(attr)
419
+
420
+ validate := validationutils.ArePresent(attr)
421
+
422
+ configureDebugInfo = `{"_NAME_":"REQUIRED_CONTEXT_ACTION","attr":"$.context.action","_RETURN_":"attr are present"}`
423
+
424
+ if !validate {
425
+ result := validationutils.ValidationOutput{
426
+ TestName: "REQUIRED_CONTEXT_ACTION",
427
+ Valid: false,
428
+ Code: 30000,
429
+ Description: `#### **REQUIRED_CONTEXT_ACTION**
430
+
431
+ - $.context.action must be present in the payload`,
432
+ DebugInfo: &validationutils.DebugInfo{
433
+ FedConfig: configureDebugInfo,
434
+ },
435
+ }
436
+ return []validationutils.ValidationOutput{result}, nil
437
+ }
438
+
439
+ }
440
+
441
+ result := validationutils.ValidationOutput{
442
+ TestName: "REQUIRED_CONTEXT_ACTION",
443
+ Valid: valid,
444
+ Code: 0,
445
+ DebugInfo: &validationutils.DebugInfo{
446
+ FedConfig: configureDebugInfo,
447
+ },
448
+ }
449
+
450
+ if valid {
451
+ result.Code = 200
452
+ } else {
453
+ result.Code = 30000
454
+ }
455
+
456
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
457
+ results = append(results, result)
458
+ results = append(results, subResults...)
459
+
460
+ return results, nil
461
+ }
462
+ var REQUIRED_CONTEXT_TIMESTAMP = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
463
+
464
+ if input.Config.SkipTestsDict != nil {
465
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_CONTEXT_TIMESTAMP"]; skip {
466
+ return []validationutils.ValidationOutput{}, nil
467
+ }
468
+ }
469
+
470
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
471
+
472
+ subResults := make([]validationutils.ValidationOutput, 0)
473
+ valid := true
474
+ configureDebugInfo := ""
475
+ for _, testObjMap := range scope {
476
+ validationutils.UnusedFunction(testObjMap)
477
+
478
+ attr := validationutils.GetJsonPath(testObjMap, "$.context.timestamp", true)
479
+ validationutils.UnusedFunction(attr)
480
+
481
+ validate := validationutils.ArePresent(attr)
482
+
483
+ configureDebugInfo = `{"_NAME_":"REQUIRED_CONTEXT_TIMESTAMP","attr":"$.context.timestamp","_RETURN_":"attr are present"}`
484
+
485
+ if !validate {
486
+ result := validationutils.ValidationOutput{
487
+ TestName: "REQUIRED_CONTEXT_TIMESTAMP",
488
+ Valid: false,
489
+ Code: 30000,
490
+ Description: `#### **REQUIRED_CONTEXT_TIMESTAMP**
491
+
492
+ - $.context.timestamp must be present in the payload`,
493
+ DebugInfo: &validationutils.DebugInfo{
494
+ FedConfig: configureDebugInfo,
495
+ },
496
+ }
497
+ return []validationutils.ValidationOutput{result}, nil
498
+ }
499
+
500
+ }
501
+
502
+ result := validationutils.ValidationOutput{
503
+ TestName: "REQUIRED_CONTEXT_TIMESTAMP",
504
+ Valid: valid,
505
+ Code: 0,
506
+ DebugInfo: &validationutils.DebugInfo{
507
+ FedConfig: configureDebugInfo,
508
+ },
509
+ }
510
+
511
+ if valid {
512
+ result.Code = 200
513
+ } else {
514
+ result.Code = 30000
515
+ }
516
+
517
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
518
+ results = append(results, result)
519
+ results = append(results, subResults...)
520
+
521
+ return results, nil
522
+ }
523
+ var REQUIRED_CONTEXT_VERSION = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
524
+
525
+ if input.Config.SkipTestsDict != nil {
526
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_CONTEXT_VERSION"]; skip {
527
+ return []validationutils.ValidationOutput{}, nil
528
+ }
529
+ }
530
+
531
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
532
+
533
+ subResults := make([]validationutils.ValidationOutput, 0)
534
+ valid := true
535
+ configureDebugInfo := ""
536
+ for _, testObjMap := range scope {
537
+ validationutils.UnusedFunction(testObjMap)
538
+
539
+ attr := validationutils.StringSliceToInterface([]string{`$.context.version`})
540
+ validationutils.UnusedFunction(attr)
541
+
542
+ validate := validationutils.ArePresent(attr)
543
+
544
+ configureDebugInfo = `{"_NAME_":"REQUIRED_CONTEXT_VERSION","attr":["$.context.version"],"_RETURN_":"attr are present"}`
545
+
546
+ if !validate {
547
+ result := validationutils.ValidationOutput{
548
+ TestName: "REQUIRED_CONTEXT_VERSION",
549
+ Valid: false,
550
+ Code: 30000,
551
+ Description: `#### **REQUIRED_CONTEXT_VERSION**
552
+
553
+ - ["$.context.version"] must be present in the payload`,
554
+ DebugInfo: &validationutils.DebugInfo{
555
+ FedConfig: configureDebugInfo,
556
+ },
557
+ }
558
+ return []validationutils.ValidationOutput{result}, nil
559
+ }
560
+
561
+ }
562
+
563
+ result := validationutils.ValidationOutput{
564
+ TestName: "REQUIRED_CONTEXT_VERSION",
565
+ Valid: valid,
566
+ Code: 0,
567
+ DebugInfo: &validationutils.DebugInfo{
568
+ FedConfig: configureDebugInfo,
569
+ },
570
+ }
571
+
572
+ if valid {
573
+ result.Code = 200
574
+ } else {
575
+ result.Code = 30000
576
+ }
577
+
578
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
579
+ results = append(results, result)
580
+ results = append(results, subResults...)
581
+
582
+ return results, nil
583
+ }
584
+ var REQUIRED_CONTEXT_BAP_URI = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
585
+
586
+ if input.Config.SkipTestsDict != nil {
587
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_CONTEXT_BAP_URI"]; skip {
588
+ return []validationutils.ValidationOutput{}, nil
589
+ }
590
+ }
591
+
592
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
593
+
594
+ subResults := make([]validationutils.ValidationOutput, 0)
595
+ valid := true
596
+ configureDebugInfo := ""
597
+ for _, testObjMap := range scope {
598
+ validationutils.UnusedFunction(testObjMap)
599
+
600
+ attr := validationutils.GetJsonPath(testObjMap, "$.context.bap_uri", true)
601
+ validationutils.UnusedFunction(attr)
602
+
603
+ validate := validationutils.ArePresent(attr)
604
+
605
+ configureDebugInfo = `{"_NAME_":"REQUIRED_CONTEXT_BAP_URI","attr":"$.context.bap_uri","_RETURN_":"attr are present"}`
606
+
607
+ if !validate {
608
+ result := validationutils.ValidationOutput{
609
+ TestName: "REQUIRED_CONTEXT_BAP_URI",
610
+ Valid: false,
611
+ Code: 30000,
612
+ Description: `#### **REQUIRED_CONTEXT_BAP_URI**
613
+
614
+ - $.context.bap_uri must be present in the payload`,
615
+ DebugInfo: &validationutils.DebugInfo{
616
+ FedConfig: configureDebugInfo,
617
+ },
618
+ }
619
+ return []validationutils.ValidationOutput{result}, nil
620
+ }
621
+
622
+ }
623
+
624
+ result := validationutils.ValidationOutput{
625
+ TestName: "REQUIRED_CONTEXT_BAP_URI",
626
+ Valid: valid,
627
+ Code: 0,
628
+ DebugInfo: &validationutils.DebugInfo{
629
+ FedConfig: configureDebugInfo,
630
+ },
631
+ }
632
+
633
+ if valid {
634
+ result.Code = 200
635
+ } else {
636
+ result.Code = 30000
637
+ }
638
+
639
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
640
+ results = append(results, result)
641
+ results = append(results, subResults...)
642
+
643
+ return results, nil
644
+ }
645
+ var REQUIRED_CONTEXT_BAP_ID = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
646
+
647
+ if input.Config.SkipTestsDict != nil {
648
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_CONTEXT_BAP_ID"]; skip {
649
+ return []validationutils.ValidationOutput{}, nil
650
+ }
651
+ }
652
+
653
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
654
+
655
+ subResults := make([]validationutils.ValidationOutput, 0)
656
+ valid := true
657
+ configureDebugInfo := ""
658
+ for _, testObjMap := range scope {
659
+ validationutils.UnusedFunction(testObjMap)
660
+
661
+ attr := validationutils.GetJsonPath(testObjMap, "$.context.bap_id", true)
662
+ validationutils.UnusedFunction(attr)
663
+
664
+ validate := validationutils.ArePresent(attr)
665
+
666
+ configureDebugInfo = `{"_NAME_":"REQUIRED_CONTEXT_BAP_ID","attr":"$.context.bap_id","_RETURN_":"attr are present"}`
667
+
668
+ if !validate {
669
+ result := validationutils.ValidationOutput{
670
+ TestName: "REQUIRED_CONTEXT_BAP_ID",
671
+ Valid: false,
672
+ Code: 30000,
673
+ Description: `#### **REQUIRED_CONTEXT_BAP_ID**
674
+
675
+ - $.context.bap_id must be present in the payload`,
676
+ DebugInfo: &validationutils.DebugInfo{
677
+ FedConfig: configureDebugInfo,
678
+ },
679
+ }
680
+ return []validationutils.ValidationOutput{result}, nil
681
+ }
682
+
683
+ }
684
+
685
+ result := validationutils.ValidationOutput{
686
+ TestName: "REQUIRED_CONTEXT_BAP_ID",
687
+ Valid: valid,
688
+ Code: 0,
689
+ DebugInfo: &validationutils.DebugInfo{
690
+ FedConfig: configureDebugInfo,
691
+ },
692
+ }
693
+
694
+ if valid {
695
+ result.Code = 200
696
+ } else {
697
+ result.Code = 30000
698
+ }
699
+
700
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
701
+ results = append(results, result)
702
+ results = append(results, subResults...)
703
+
704
+ return results, nil
705
+ }
706
+ var REQUIRED_CONTEXT_BPP_URI = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
707
+
708
+ if input.Config.SkipTestsDict != nil {
709
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_CONTEXT_BPP_URI"]; skip {
710
+ return []validationutils.ValidationOutput{}, nil
711
+ }
712
+ }
713
+
714
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
715
+
716
+ subResults := make([]validationutils.ValidationOutput, 0)
717
+ valid := true
718
+ configureDebugInfo := ""
719
+ for _, testObjMap := range scope {
720
+ validationutils.UnusedFunction(testObjMap)
721
+
722
+ attr := validationutils.GetJsonPath(testObjMap, "$.context.bpp_uri", true)
723
+ validationutils.UnusedFunction(attr)
724
+
725
+ validate := validationutils.ArePresent(attr)
726
+
727
+ configureDebugInfo = `{"_NAME_":"REQUIRED_CONTEXT_BPP_URI","attr":"$.context.bpp_uri","_RETURN_":"attr are present"}`
728
+
729
+ if !validate {
730
+ result := validationutils.ValidationOutput{
731
+ TestName: "REQUIRED_CONTEXT_BPP_URI",
732
+ Valid: false,
733
+ Code: 30000,
734
+ Description: `#### **REQUIRED_CONTEXT_BPP_URI**
735
+
736
+ - $.context.bpp_uri must be present in the payload`,
737
+ DebugInfo: &validationutils.DebugInfo{
738
+ FedConfig: configureDebugInfo,
739
+ },
740
+ }
741
+ return []validationutils.ValidationOutput{result}, nil
742
+ }
743
+
744
+ }
745
+
746
+ result := validationutils.ValidationOutput{
747
+ TestName: "REQUIRED_CONTEXT_BPP_URI",
748
+ Valid: valid,
749
+ Code: 0,
750
+ DebugInfo: &validationutils.DebugInfo{
751
+ FedConfig: configureDebugInfo,
752
+ },
753
+ }
754
+
755
+ if valid {
756
+ result.Code = 200
757
+ } else {
758
+ result.Code = 30000
759
+ }
760
+
761
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
762
+ results = append(results, result)
763
+ results = append(results, subResults...)
764
+
765
+ return results, nil
766
+ }
767
+ var REQUIRED_CONTEXT_BPP_ID = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
768
+
769
+ if input.Config.SkipTestsDict != nil {
770
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_CONTEXT_BPP_ID"]; skip {
771
+ return []validationutils.ValidationOutput{}, nil
772
+ }
773
+ }
774
+
775
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
776
+
777
+ subResults := make([]validationutils.ValidationOutput, 0)
778
+ valid := true
779
+ configureDebugInfo := ""
780
+ for _, testObjMap := range scope {
781
+ validationutils.UnusedFunction(testObjMap)
782
+
783
+ attr := validationutils.GetJsonPath(testObjMap, "$.context.bpp_id", true)
784
+ validationutils.UnusedFunction(attr)
785
+
786
+ validate := validationutils.ArePresent(attr)
787
+
788
+ configureDebugInfo = `{"_NAME_":"REQUIRED_CONTEXT_BPP_ID","attr":"$.context.bpp_id","_RETURN_":"attr are present"}`
789
+
790
+ if !validate {
791
+ result := validationutils.ValidationOutput{
792
+ TestName: "REQUIRED_CONTEXT_BPP_ID",
793
+ Valid: false,
794
+ Code: 30000,
795
+ Description: `#### **REQUIRED_CONTEXT_BPP_ID**
796
+
797
+ - $.context.bpp_id must be present in the payload`,
798
+ DebugInfo: &validationutils.DebugInfo{
799
+ FedConfig: configureDebugInfo,
800
+ },
801
+ }
802
+ return []validationutils.ValidationOutput{result}, nil
803
+ }
804
+
805
+ }
806
+
807
+ result := validationutils.ValidationOutput{
808
+ TestName: "REQUIRED_CONTEXT_BPP_ID",
809
+ Valid: valid,
810
+ Code: 0,
811
+ DebugInfo: &validationutils.DebugInfo{
812
+ FedConfig: configureDebugInfo,
813
+ },
814
+ }
815
+
816
+ if valid {
817
+ result.Code = 200
818
+ } else {
819
+ result.Code = 30000
820
+ }
821
+
822
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
823
+ results = append(results, result)
824
+ results = append(results, subResults...)
825
+
826
+ return results, nil
827
+ }
828
+ var VALID_CONTEXT_COUNTRY_CODE = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
829
+
830
+ if input.Config.SkipTestsDict != nil {
831
+ if _, skip := input.Config.SkipTestsDict["VALID_CONTEXT_COUNTRY_CODE"]; skip {
832
+ return []validationutils.ValidationOutput{}, nil
833
+ }
834
+ }
835
+
836
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
837
+
838
+ subResults := make([]validationutils.ValidationOutput, 0)
839
+ valid := true
840
+ configureDebugInfo := ""
841
+ for _, testObjMap := range scope {
842
+ validationutils.UnusedFunction(testObjMap)
843
+
844
+ attr := validationutils.GetJsonPath(testObjMap, "$.context.country", true)
845
+ validationutils.UnusedFunction(attr)
846
+
847
+ validate := validationutils.ArePresent(attr)
848
+
849
+ configureDebugInfo = `{"_NAME_":"VALID_CONTEXT_COUNTRY_CODE","attr":"$.context.country","_RETURN_":"attr are present"}`
850
+
851
+ if !validate {
852
+ result := validationutils.ValidationOutput{
853
+ TestName: "VALID_CONTEXT_COUNTRY_CODE",
854
+ Valid: false,
855
+ Code: 30000,
856
+ Description: `#### **VALID_CONTEXT_COUNTRY_CODE**
857
+
858
+ - $.context.country must be present in the payload`,
859
+ DebugInfo: &validationutils.DebugInfo{
860
+ FedConfig: configureDebugInfo,
861
+ },
862
+ }
863
+ return []validationutils.ValidationOutput{result}, nil
864
+ }
865
+
866
+ }
867
+
868
+ result := validationutils.ValidationOutput{
869
+ TestName: "VALID_CONTEXT_COUNTRY_CODE",
870
+ Valid: valid,
871
+ Code: 0,
872
+ DebugInfo: &validationutils.DebugInfo{
873
+ FedConfig: configureDebugInfo,
874
+ },
875
+ }
876
+
877
+ if valid {
878
+ result.Code = 200
879
+ } else {
880
+ result.Code = 30000
881
+ }
882
+
883
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
884
+ results = append(results, result)
885
+ results = append(results, subResults...)
886
+
887
+ return results, nil
888
+ }
889
+
890
+ var testFunctions = validationutils.TestFunctionArray{
891
+ REQUIRED_CONTEXT_DOMAIN,
892
+ REQUIRED_CONTEXT_COUNTRY,
893
+ REQUIRED_CONTEXT_CITY,
894
+ REQUIRED_CONTEXT_TRANSACTION_ID,
895
+ REQUIRED_CONTEXT_MESSAGE_ID,
896
+ REQUIRED_CONTEXT_ACTION,
897
+ REQUIRED_CONTEXT_TIMESTAMP,
898
+ REQUIRED_CONTEXT_VERSION,
899
+ REQUIRED_CONTEXT_BAP_URI,
900
+ REQUIRED_CONTEXT_BAP_ID,
901
+ REQUIRED_CONTEXT_BPP_URI,
902
+ REQUIRED_CONTEXT_BPP_ID,
903
+ VALID_CONTEXT_COUNTRY_CODE,
904
+ }
905
+
906
+ allResults := make([]validationutils.ValidationOutput, 0)
907
+
908
+ for _, testFunc := range testFunctions {
909
+ results, err := testFunc(input)
910
+ if err != nil {
911
+ return nil, err
912
+ }
913
+ allResults = append(allResults, results...)
914
+ }
915
+
916
+ subResults = allResults
917
+ // if all subResults are valid, then valid is true
918
+ valid = true
919
+ for _, res := range subResults {
920
+ if !res.Valid {
921
+ valid = false
922
+ break
923
+ }
924
+ }
925
+
926
+ configureDebugInfo = `NESTED_TEST_OBJECT`
927
+
928
+ }
929
+
930
+ result := validationutils.ValidationOutput{
931
+ TestName: "REQUIRED_CONTEXT_FIELDS",
932
+ Valid: valid,
933
+ Code: 0,
934
+ DebugInfo: &validationutils.DebugInfo{
935
+ FedConfig: configureDebugInfo,
936
+ },
937
+ }
938
+
939
+ if valid {
940
+ result.Code = 200
941
+ } else {
942
+ result.Code = 30000
943
+ }
944
+
945
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
946
+ results = append(results, result)
947
+ results = append(results, subResults...)
948
+
949
+ return results, nil
950
+ }
951
+ var ISSUE_ON_ISSUE_STATUS_VALIDATION = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
952
+
953
+ if input.Config.SkipTestsDict != nil {
954
+ if _, skip := input.Config.SkipTestsDict["ISSUE_ON_ISSUE_STATUS_VALIDATION"]; skip {
955
+ return []validationutils.ValidationOutput{}, nil
956
+ }
957
+ }
958
+
959
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
960
+
961
+ subResults := make([]validationutils.ValidationOutput, 0)
962
+ valid := true
963
+ configureDebugInfo := ""
964
+ for _, testObjMap := range scope {
965
+ validationutils.UnusedFunction(testObjMap)
966
+
967
+ var REQUIRED_ISSUE_ID = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
968
+
969
+ if input.Config.SkipTestsDict != nil {
970
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_ISSUE_ID"]; skip {
971
+ return []validationutils.ValidationOutput{}, nil
972
+ }
973
+ }
974
+
975
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
976
+
977
+ subResults := make([]validationutils.ValidationOutput, 0)
978
+ valid := true
979
+ configureDebugInfo := ""
980
+ for _, testObjMap := range scope {
981
+ validationutils.UnusedFunction(testObjMap)
982
+
983
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.id", true)
984
+ validationutils.UnusedFunction(attr)
985
+
986
+ validate := validationutils.ArePresent(attr)
987
+
988
+ configureDebugInfo = `{"_NAME_":"REQUIRED_ISSUE_ID","attr":"$.message.issue.id","_RETURN_":"attr are present","action":["on_issue_status"]}`
989
+
990
+ if !validate {
991
+ result := validationutils.ValidationOutput{
992
+ TestName: "REQUIRED_ISSUE_ID",
993
+ Valid: false,
994
+ Code: 30000,
995
+ Description: `#### **REQUIRED_ISSUE_ID**
996
+
997
+ - $.message.issue.id must be present in the payload`,
998
+ DebugInfo: &validationutils.DebugInfo{
999
+ FedConfig: configureDebugInfo,
1000
+ },
1001
+ }
1002
+ return []validationutils.ValidationOutput{result}, nil
1003
+ }
1004
+
1005
+ }
1006
+
1007
+ result := validationutils.ValidationOutput{
1008
+ TestName: "REQUIRED_ISSUE_ID",
1009
+ Valid: valid,
1010
+ Code: 0,
1011
+ DebugInfo: &validationutils.DebugInfo{
1012
+ FedConfig: configureDebugInfo,
1013
+ },
1014
+ }
1015
+
1016
+ if valid {
1017
+ result.Code = 200
1018
+ } else {
1019
+ result.Code = 30000
1020
+ }
1021
+
1022
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1023
+ results = append(results, result)
1024
+ results = append(results, subResults...)
1025
+
1026
+ return results, nil
1027
+ }
1028
+ var REQUIRED_RESPONDENT_ACTION = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1029
+
1030
+ if input.Config.SkipTestsDict != nil {
1031
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_RESPONDENT_ACTION"]; skip {
1032
+ return []validationutils.ValidationOutput{}, nil
1033
+ }
1034
+ }
1035
+
1036
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1037
+
1038
+ subResults := make([]validationutils.ValidationOutput, 0)
1039
+ valid := true
1040
+ configureDebugInfo := ""
1041
+ for _, testObjMap := range scope {
1042
+ validationutils.UnusedFunction(testObjMap)
1043
+
1044
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.issue_actions.respondent_actions[*].respondent_action", true)
1045
+ validationutils.UnusedFunction(attr)
1046
+ enumList := validationutils.StringSliceToInterface([]string{`OPEN`, `PROCESSING`, `RESOLVED`, `CLOSED`, `INFO_PROVIDED`, `NEED_MORE_INFO`})
1047
+ validationutils.UnusedFunction(enumList)
1048
+
1049
+ validate := (validationutils.ArePresent(attr)) && (validationutils.AllIn(attr, enumList))
1050
+
1051
+ configureDebugInfo = `{"_NAME_":"REQUIRED_RESPONDENT_ACTION","attr":"$.message.issue.issue_actions.respondent_actions[*].respondent_action","_RETURN_":"attr are present && attr all in enumList","enumList":["OPEN","PROCESSING","RESOLVED","CLOSED","INFO_PROVIDED","NEED_MORE_INFO"],"action":["on_issue_status"]}`
1052
+
1053
+ if !validate {
1054
+ result := validationutils.ValidationOutput{
1055
+ TestName: "REQUIRED_RESPONDENT_ACTION",
1056
+ Valid: false,
1057
+ Code: 30000,
1058
+ Description: `#### **REQUIRED_RESPONDENT_ACTION**
1059
+
1060
+ **All of the following must be true:**
1061
+ - $.message.issue.issue_actions.respondent_actions[*].respondent_action must be present in the payload
1062
+ - All elements of $.message.issue.issue_actions.respondent_actions[*].respondent_action must be in ["OPEN", "PROCESSING", "RESOLVED", "CLOSED", "INFO_PROVIDED", "NEED_MORE_INFO"]`,
1063
+ DebugInfo: &validationutils.DebugInfo{
1064
+ FedConfig: configureDebugInfo,
1065
+ },
1066
+ }
1067
+ return []validationutils.ValidationOutput{result}, nil
1068
+ }
1069
+
1070
+ }
1071
+
1072
+ result := validationutils.ValidationOutput{
1073
+ TestName: "REQUIRED_RESPONDENT_ACTION",
1074
+ Valid: valid,
1075
+ Code: 0,
1076
+ DebugInfo: &validationutils.DebugInfo{
1077
+ FedConfig: configureDebugInfo,
1078
+ },
1079
+ }
1080
+
1081
+ if valid {
1082
+ result.Code = 200
1083
+ } else {
1084
+ result.Code = 30000
1085
+ }
1086
+
1087
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1088
+ results = append(results, result)
1089
+ results = append(results, subResults...)
1090
+
1091
+ return results, nil
1092
+ }
1093
+ var REQUIRED_RESPONDENT_SHORT_DESC = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1094
+
1095
+ if input.Config.SkipTestsDict != nil {
1096
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_RESPONDENT_SHORT_DESC"]; skip {
1097
+ return []validationutils.ValidationOutput{}, nil
1098
+ }
1099
+ }
1100
+
1101
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1102
+
1103
+ subResults := make([]validationutils.ValidationOutput, 0)
1104
+ valid := true
1105
+ configureDebugInfo := ""
1106
+ for _, testObjMap := range scope {
1107
+ validationutils.UnusedFunction(testObjMap)
1108
+
1109
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.issue_actions.respondent_actions[*].short_desc", true)
1110
+ validationutils.UnusedFunction(attr)
1111
+
1112
+ validate := validationutils.ArePresent(attr)
1113
+
1114
+ configureDebugInfo = `{"_NAME_":"REQUIRED_RESPONDENT_SHORT_DESC","attr":"$.message.issue.issue_actions.respondent_actions[*].short_desc","_RETURN_":"attr are present","action":["on_issue_status"]}`
1115
+
1116
+ if !validate {
1117
+ result := validationutils.ValidationOutput{
1118
+ TestName: "REQUIRED_RESPONDENT_SHORT_DESC",
1119
+ Valid: false,
1120
+ Code: 30000,
1121
+ Description: `#### **REQUIRED_RESPONDENT_SHORT_DESC**
1122
+
1123
+ - $.message.issue.issue_actions.respondent_actions[*].short_desc must be present in the payload`,
1124
+ DebugInfo: &validationutils.DebugInfo{
1125
+ FedConfig: configureDebugInfo,
1126
+ },
1127
+ }
1128
+ return []validationutils.ValidationOutput{result}, nil
1129
+ }
1130
+
1131
+ }
1132
+
1133
+ result := validationutils.ValidationOutput{
1134
+ TestName: "REQUIRED_RESPONDENT_SHORT_DESC",
1135
+ Valid: valid,
1136
+ Code: 0,
1137
+ DebugInfo: &validationutils.DebugInfo{
1138
+ FedConfig: configureDebugInfo,
1139
+ },
1140
+ }
1141
+
1142
+ if valid {
1143
+ result.Code = 200
1144
+ } else {
1145
+ result.Code = 30000
1146
+ }
1147
+
1148
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1149
+ results = append(results, result)
1150
+ results = append(results, subResults...)
1151
+
1152
+ return results, nil
1153
+ }
1154
+ var REQUIRED_RESPONDENT_UPDATED_AT = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1155
+
1156
+ if input.Config.SkipTestsDict != nil {
1157
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_RESPONDENT_UPDATED_AT"]; skip {
1158
+ return []validationutils.ValidationOutput{}, nil
1159
+ }
1160
+ }
1161
+
1162
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1163
+
1164
+ subResults := make([]validationutils.ValidationOutput, 0)
1165
+ valid := true
1166
+ configureDebugInfo := ""
1167
+ for _, testObjMap := range scope {
1168
+ validationutils.UnusedFunction(testObjMap)
1169
+
1170
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.issue_actions.respondent_actions[*].updated_at", true)
1171
+ validationutils.UnusedFunction(attr)
1172
+
1173
+ validate := validationutils.ArePresent(attr)
1174
+
1175
+ configureDebugInfo = `{"_NAME_":"REQUIRED_RESPONDENT_UPDATED_AT","attr":"$.message.issue.issue_actions.respondent_actions[*].updated_at","_RETURN_":"attr are present","action":["on_issue_status"]}`
1176
+
1177
+ if !validate {
1178
+ result := validationutils.ValidationOutput{
1179
+ TestName: "REQUIRED_RESPONDENT_UPDATED_AT",
1180
+ Valid: false,
1181
+ Code: 30000,
1182
+ Description: `#### **REQUIRED_RESPONDENT_UPDATED_AT**
1183
+
1184
+ - $.message.issue.issue_actions.respondent_actions[*].updated_at must be present in the payload`,
1185
+ DebugInfo: &validationutils.DebugInfo{
1186
+ FedConfig: configureDebugInfo,
1187
+ },
1188
+ }
1189
+ return []validationutils.ValidationOutput{result}, nil
1190
+ }
1191
+
1192
+ }
1193
+
1194
+ result := validationutils.ValidationOutput{
1195
+ TestName: "REQUIRED_RESPONDENT_UPDATED_AT",
1196
+ Valid: valid,
1197
+ Code: 0,
1198
+ DebugInfo: &validationutils.DebugInfo{
1199
+ FedConfig: configureDebugInfo,
1200
+ },
1201
+ }
1202
+
1203
+ if valid {
1204
+ result.Code = 200
1205
+ } else {
1206
+ result.Code = 30000
1207
+ }
1208
+
1209
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1210
+ results = append(results, result)
1211
+ results = append(results, subResults...)
1212
+
1213
+ return results, nil
1214
+ }
1215
+ var REQUIRED_RESPONDENT_UPDATED_BY_PERSON = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1216
+
1217
+ if input.Config.SkipTestsDict != nil {
1218
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_RESPONDENT_UPDATED_BY_PERSON"]; skip {
1219
+ return []validationutils.ValidationOutput{}, nil
1220
+ }
1221
+ }
1222
+
1223
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1224
+
1225
+ subResults := make([]validationutils.ValidationOutput, 0)
1226
+ valid := true
1227
+ configureDebugInfo := ""
1228
+ for _, testObjMap := range scope {
1229
+ validationutils.UnusedFunction(testObjMap)
1230
+
1231
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.issue_actions.respondent_actions[*].updated_by.person.name", true)
1232
+ validationutils.UnusedFunction(attr)
1233
+
1234
+ validate := validationutils.ArePresent(attr)
1235
+
1236
+ configureDebugInfo = `{"_NAME_":"REQUIRED_RESPONDENT_UPDATED_BY_PERSON","attr":"$.message.issue.issue_actions.respondent_actions[*].updated_by.person.name","_RETURN_":"attr are present","action":["on_issue_status"]}`
1237
+
1238
+ if !validate {
1239
+ result := validationutils.ValidationOutput{
1240
+ TestName: "REQUIRED_RESPONDENT_UPDATED_BY_PERSON",
1241
+ Valid: false,
1242
+ Code: 30000,
1243
+ Description: `#### **REQUIRED_RESPONDENT_UPDATED_BY_PERSON**
1244
+
1245
+ - $.message.issue.issue_actions.respondent_actions[*].updated_by.person.name must be present in the payload`,
1246
+ DebugInfo: &validationutils.DebugInfo{
1247
+ FedConfig: configureDebugInfo,
1248
+ },
1249
+ }
1250
+ return []validationutils.ValidationOutput{result}, nil
1251
+ }
1252
+
1253
+ }
1254
+
1255
+ result := validationutils.ValidationOutput{
1256
+ TestName: "REQUIRED_RESPONDENT_UPDATED_BY_PERSON",
1257
+ Valid: valid,
1258
+ Code: 0,
1259
+ DebugInfo: &validationutils.DebugInfo{
1260
+ FedConfig: configureDebugInfo,
1261
+ },
1262
+ }
1263
+
1264
+ if valid {
1265
+ result.Code = 200
1266
+ } else {
1267
+ result.Code = 30000
1268
+ }
1269
+
1270
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1271
+ results = append(results, result)
1272
+ results = append(results, subResults...)
1273
+
1274
+ return results, nil
1275
+ }
1276
+ var REQUIRED_RESPONDENT_UPDATED_BY_ORG = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1277
+
1278
+ if input.Config.SkipTestsDict != nil {
1279
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_RESPONDENT_UPDATED_BY_ORG"]; skip {
1280
+ return []validationutils.ValidationOutput{}, nil
1281
+ }
1282
+ }
1283
+
1284
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1285
+
1286
+ subResults := make([]validationutils.ValidationOutput, 0)
1287
+ valid := true
1288
+ configureDebugInfo := ""
1289
+ for _, testObjMap := range scope {
1290
+ validationutils.UnusedFunction(testObjMap)
1291
+
1292
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.issue_actions.respondent_actions[*].updated_by.org.name", true)
1293
+ validationutils.UnusedFunction(attr)
1294
+
1295
+ validate := validationutils.ArePresent(attr)
1296
+
1297
+ configureDebugInfo = `{"_NAME_":"REQUIRED_RESPONDENT_UPDATED_BY_ORG","attr":"$.message.issue.issue_actions.respondent_actions[*].updated_by.org.name","_RETURN_":"attr are present","action":["on_issue_status"]}`
1298
+
1299
+ if !validate {
1300
+ result := validationutils.ValidationOutput{
1301
+ TestName: "REQUIRED_RESPONDENT_UPDATED_BY_ORG",
1302
+ Valid: false,
1303
+ Code: 30000,
1304
+ Description: `#### **REQUIRED_RESPONDENT_UPDATED_BY_ORG**
1305
+
1306
+ - $.message.issue.issue_actions.respondent_actions[*].updated_by.org.name must be present in the payload`,
1307
+ DebugInfo: &validationutils.DebugInfo{
1308
+ FedConfig: configureDebugInfo,
1309
+ },
1310
+ }
1311
+ return []validationutils.ValidationOutput{result}, nil
1312
+ }
1313
+
1314
+ }
1315
+
1316
+ result := validationutils.ValidationOutput{
1317
+ TestName: "REQUIRED_RESPONDENT_UPDATED_BY_ORG",
1318
+ Valid: valid,
1319
+ Code: 0,
1320
+ DebugInfo: &validationutils.DebugInfo{
1321
+ FedConfig: configureDebugInfo,
1322
+ },
1323
+ }
1324
+
1325
+ if valid {
1326
+ result.Code = 200
1327
+ } else {
1328
+ result.Code = 30000
1329
+ }
1330
+
1331
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1332
+ results = append(results, result)
1333
+ results = append(results, subResults...)
1334
+
1335
+ return results, nil
1336
+ }
1337
+ var REQUIRED_ISSUE_CREATED_AT = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1338
+
1339
+ if input.Config.SkipTestsDict != nil {
1340
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_ISSUE_CREATED_AT"]; skip {
1341
+ return []validationutils.ValidationOutput{}, nil
1342
+ }
1343
+ }
1344
+
1345
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1346
+
1347
+ subResults := make([]validationutils.ValidationOutput, 0)
1348
+ valid := true
1349
+ configureDebugInfo := ""
1350
+ for _, testObjMap := range scope {
1351
+ validationutils.UnusedFunction(testObjMap)
1352
+
1353
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.created_at", true)
1354
+ validationutils.UnusedFunction(attr)
1355
+
1356
+ validate := validationutils.ArePresent(attr)
1357
+
1358
+ configureDebugInfo = `{"_NAME_":"REQUIRED_ISSUE_CREATED_AT","attr":"$.message.issue.created_at","_RETURN_":"attr are present","action":["on_issue_status"]}`
1359
+
1360
+ if !validate {
1361
+ result := validationutils.ValidationOutput{
1362
+ TestName: "REQUIRED_ISSUE_CREATED_AT",
1363
+ Valid: false,
1364
+ Code: 30000,
1365
+ Description: `#### **REQUIRED_ISSUE_CREATED_AT**
1366
+
1367
+ - $.message.issue.created_at must be present in the payload`,
1368
+ DebugInfo: &validationutils.DebugInfo{
1369
+ FedConfig: configureDebugInfo,
1370
+ },
1371
+ }
1372
+ return []validationutils.ValidationOutput{result}, nil
1373
+ }
1374
+
1375
+ }
1376
+
1377
+ result := validationutils.ValidationOutput{
1378
+ TestName: "REQUIRED_ISSUE_CREATED_AT",
1379
+ Valid: valid,
1380
+ Code: 0,
1381
+ DebugInfo: &validationutils.DebugInfo{
1382
+ FedConfig: configureDebugInfo,
1383
+ },
1384
+ }
1385
+
1386
+ if valid {
1387
+ result.Code = 200
1388
+ } else {
1389
+ result.Code = 30000
1390
+ }
1391
+
1392
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1393
+ results = append(results, result)
1394
+ results = append(results, subResults...)
1395
+
1396
+ return results, nil
1397
+ }
1398
+ var REQUIRED_ISSUE_UPDATED_AT = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1399
+
1400
+ if input.Config.SkipTestsDict != nil {
1401
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_ISSUE_UPDATED_AT"]; skip {
1402
+ return []validationutils.ValidationOutput{}, nil
1403
+ }
1404
+ }
1405
+
1406
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1407
+
1408
+ subResults := make([]validationutils.ValidationOutput, 0)
1409
+ valid := true
1410
+ configureDebugInfo := ""
1411
+ for _, testObjMap := range scope {
1412
+ validationutils.UnusedFunction(testObjMap)
1413
+
1414
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.updated_at", true)
1415
+ validationutils.UnusedFunction(attr)
1416
+
1417
+ validate := validationutils.ArePresent(attr)
1418
+
1419
+ configureDebugInfo = `{"_NAME_":"REQUIRED_ISSUE_UPDATED_AT","attr":"$.message.issue.updated_at","_RETURN_":"attr are present","action":["on_issue_status"]}`
1420
+
1421
+ if !validate {
1422
+ result := validationutils.ValidationOutput{
1423
+ TestName: "REQUIRED_ISSUE_UPDATED_AT",
1424
+ Valid: false,
1425
+ Code: 30000,
1426
+ Description: `#### **REQUIRED_ISSUE_UPDATED_AT**
1427
+
1428
+ - $.message.issue.updated_at must be present in the payload`,
1429
+ DebugInfo: &validationutils.DebugInfo{
1430
+ FedConfig: configureDebugInfo,
1431
+ },
1432
+ }
1433
+ return []validationutils.ValidationOutput{result}, nil
1434
+ }
1435
+
1436
+ }
1437
+
1438
+ result := validationutils.ValidationOutput{
1439
+ TestName: "REQUIRED_ISSUE_UPDATED_AT",
1440
+ Valid: valid,
1441
+ Code: 0,
1442
+ DebugInfo: &validationutils.DebugInfo{
1443
+ FedConfig: configureDebugInfo,
1444
+ },
1445
+ }
1446
+
1447
+ if valid {
1448
+ result.Code = 200
1449
+ } else {
1450
+ result.Code = 30000
1451
+ }
1452
+
1453
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1454
+ results = append(results, result)
1455
+ results = append(results, subResults...)
1456
+
1457
+ return results, nil
1458
+ }
1459
+ var REQUIRED_RESOLUTION_SHORT_DESC = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1460
+
1461
+ if input.Config.SkipTestsDict != nil {
1462
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_RESOLUTION_SHORT_DESC"]; skip {
1463
+ return []validationutils.ValidationOutput{}, nil
1464
+ }
1465
+ }
1466
+
1467
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1468
+
1469
+ subResults := make([]validationutils.ValidationOutput, 0)
1470
+ valid := true
1471
+ configureDebugInfo := ""
1472
+ for _, testObjMap := range scope {
1473
+ validationutils.UnusedFunction(testObjMap)
1474
+
1475
+ attr := validationutils.StringSliceToInterface([]string{`$.message.issue.resolution.short_desc`})
1476
+ validationutils.UnusedFunction(attr)
1477
+
1478
+ validate := validationutils.ArePresent(attr)
1479
+
1480
+ configureDebugInfo = `{"_NAME_":"REQUIRED_RESOLUTION_SHORT_DESC","attr":["$.message.issue.resolution.short_desc"],"_RETURN_":"attr are present","action":["on_issue_status"]}`
1481
+
1482
+ if !validate {
1483
+ result := validationutils.ValidationOutput{
1484
+ TestName: "REQUIRED_RESOLUTION_SHORT_DESC",
1485
+ Valid: false,
1486
+ Code: 30000,
1487
+ Description: `#### **REQUIRED_RESOLUTION_SHORT_DESC**
1488
+
1489
+ - ["$.message.issue.resolution.short_desc"] must be present in the payload`,
1490
+ DebugInfo: &validationutils.DebugInfo{
1491
+ FedConfig: configureDebugInfo,
1492
+ },
1493
+ }
1494
+ return []validationutils.ValidationOutput{result}, nil
1495
+ }
1496
+
1497
+ }
1498
+
1499
+ result := validationutils.ValidationOutput{
1500
+ TestName: "REQUIRED_RESOLUTION_SHORT_DESC",
1501
+ Valid: valid,
1502
+ Code: 0,
1503
+ DebugInfo: &validationutils.DebugInfo{
1504
+ FedConfig: configureDebugInfo,
1505
+ },
1506
+ }
1507
+
1508
+ if valid {
1509
+ result.Code = 200
1510
+ } else {
1511
+ result.Code = 30000
1512
+ }
1513
+
1514
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1515
+ results = append(results, result)
1516
+ results = append(results, subResults...)
1517
+
1518
+ return results, nil
1519
+ }
1520
+ var REQUIRED_RESOLUTION_LONG_DESC = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1521
+
1522
+ if input.Config.SkipTestsDict != nil {
1523
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_RESOLUTION_LONG_DESC"]; skip {
1524
+ return []validationutils.ValidationOutput{}, nil
1525
+ }
1526
+ }
1527
+
1528
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1529
+
1530
+ subResults := make([]validationutils.ValidationOutput, 0)
1531
+ valid := true
1532
+ configureDebugInfo := ""
1533
+ for _, testObjMap := range scope {
1534
+ validationutils.UnusedFunction(testObjMap)
1535
+
1536
+ attr := validationutils.StringSliceToInterface([]string{`$.message.issue.resolution.long_desc`})
1537
+ validationutils.UnusedFunction(attr)
1538
+
1539
+ validate := validationutils.ArePresent(attr)
1540
+
1541
+ configureDebugInfo = `{"_NAME_":"REQUIRED_RESOLUTION_LONG_DESC","attr":["$.message.issue.resolution.long_desc"],"_RETURN_":"attr are present","action":["on_issue_status"]}`
1542
+
1543
+ if !validate {
1544
+ result := validationutils.ValidationOutput{
1545
+ TestName: "REQUIRED_RESOLUTION_LONG_DESC",
1546
+ Valid: false,
1547
+ Code: 30000,
1548
+ Description: `#### **REQUIRED_RESOLUTION_LONG_DESC**
1549
+
1550
+ - ["$.message.issue.resolution.long_desc"] must be present in the payload`,
1551
+ DebugInfo: &validationutils.DebugInfo{
1552
+ FedConfig: configureDebugInfo,
1553
+ },
1554
+ }
1555
+ return []validationutils.ValidationOutput{result}, nil
1556
+ }
1557
+
1558
+ }
1559
+
1560
+ result := validationutils.ValidationOutput{
1561
+ TestName: "REQUIRED_RESOLUTION_LONG_DESC",
1562
+ Valid: valid,
1563
+ Code: 0,
1564
+ DebugInfo: &validationutils.DebugInfo{
1565
+ FedConfig: configureDebugInfo,
1566
+ },
1567
+ }
1568
+
1569
+ if valid {
1570
+ result.Code = 200
1571
+ } else {
1572
+ result.Code = 30000
1573
+ }
1574
+
1575
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1576
+ results = append(results, result)
1577
+ results = append(results, subResults...)
1578
+
1579
+ return results, nil
1580
+ }
1581
+ var REQUIRED_RESOLUTION_ACTION_TRIGGERED = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1582
+
1583
+ if input.Config.SkipTestsDict != nil {
1584
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_RESOLUTION_ACTION_TRIGGERED"]; skip {
1585
+ return []validationutils.ValidationOutput{}, nil
1586
+ }
1587
+ }
1588
+
1589
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1590
+
1591
+ subResults := make([]validationutils.ValidationOutput, 0)
1592
+ valid := true
1593
+ configureDebugInfo := ""
1594
+ for _, testObjMap := range scope {
1595
+ validationutils.UnusedFunction(testObjMap)
1596
+
1597
+ attr := validationutils.StringSliceToInterface([]string{`$.message.issue.resolution.action_triggered`})
1598
+ validationutils.UnusedFunction(attr)
1599
+
1600
+ validate := validationutils.ArePresent(attr)
1601
+
1602
+ configureDebugInfo = `{"_NAME_":"REQUIRED_RESOLUTION_ACTION_TRIGGERED","attr":["$.message.issue.resolution.action_triggered"],"_RETURN_":"attr are present","action":["on_issue_status"]}`
1603
+
1604
+ if !validate {
1605
+ result := validationutils.ValidationOutput{
1606
+ TestName: "REQUIRED_RESOLUTION_ACTION_TRIGGERED",
1607
+ Valid: false,
1608
+ Code: 30000,
1609
+ Description: `#### **REQUIRED_RESOLUTION_ACTION_TRIGGERED**
1610
+
1611
+ - ["$.message.issue.resolution.action_triggered"] must be present in the payload`,
1612
+ DebugInfo: &validationutils.DebugInfo{
1613
+ FedConfig: configureDebugInfo,
1614
+ },
1615
+ }
1616
+ return []validationutils.ValidationOutput{result}, nil
1617
+ }
1618
+
1619
+ }
1620
+
1621
+ result := validationutils.ValidationOutput{
1622
+ TestName: "REQUIRED_RESOLUTION_ACTION_TRIGGERED",
1623
+ Valid: valid,
1624
+ Code: 0,
1625
+ DebugInfo: &validationutils.DebugInfo{
1626
+ FedConfig: configureDebugInfo,
1627
+ },
1628
+ }
1629
+
1630
+ if valid {
1631
+ result.Code = 200
1632
+ } else {
1633
+ result.Code = 30000
1634
+ }
1635
+
1636
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1637
+ results = append(results, result)
1638
+ results = append(results, subResults...)
1639
+
1640
+ return results, nil
1641
+ }
1642
+ var REQUIRED_RESOLUTION_PROVIDER_TYPE = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1643
+
1644
+ if input.Config.SkipTestsDict != nil {
1645
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_RESOLUTION_PROVIDER_TYPE"]; skip {
1646
+ return []validationutils.ValidationOutput{}, nil
1647
+ }
1648
+ }
1649
+
1650
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1651
+
1652
+ subResults := make([]validationutils.ValidationOutput, 0)
1653
+ valid := true
1654
+ configureDebugInfo := ""
1655
+ for _, testObjMap := range scope {
1656
+ validationutils.UnusedFunction(testObjMap)
1657
+
1658
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.resolution_provider.respondent_info.type", true)
1659
+ validationutils.UnusedFunction(attr)
1660
+
1661
+ validate := validationutils.ArePresent(attr)
1662
+
1663
+ configureDebugInfo = `{"_NAME_":"REQUIRED_RESOLUTION_PROVIDER_TYPE","attr":"$.message.issue.resolution_provider.respondent_info.type","_RETURN_":"attr are present","action":["on_issue_status"]}`
1664
+
1665
+ if !validate {
1666
+ result := validationutils.ValidationOutput{
1667
+ TestName: "REQUIRED_RESOLUTION_PROVIDER_TYPE",
1668
+ Valid: false,
1669
+ Code: 30000,
1670
+ Description: `#### **REQUIRED_RESOLUTION_PROVIDER_TYPE**
1671
+
1672
+ - $.message.issue.resolution_provider.respondent_info.type must be present in the payload`,
1673
+ DebugInfo: &validationutils.DebugInfo{
1674
+ FedConfig: configureDebugInfo,
1675
+ },
1676
+ }
1677
+ return []validationutils.ValidationOutput{result}, nil
1678
+ }
1679
+
1680
+ }
1681
+
1682
+ result := validationutils.ValidationOutput{
1683
+ TestName: "REQUIRED_RESOLUTION_PROVIDER_TYPE",
1684
+ Valid: valid,
1685
+ Code: 0,
1686
+ DebugInfo: &validationutils.DebugInfo{
1687
+ FedConfig: configureDebugInfo,
1688
+ },
1689
+ }
1690
+
1691
+ if valid {
1692
+ result.Code = 200
1693
+ } else {
1694
+ result.Code = 30000
1695
+ }
1696
+
1697
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1698
+ results = append(results, result)
1699
+ results = append(results, subResults...)
1700
+
1701
+ return results, nil
1702
+ }
1703
+ var REQUIRED_RESOLUTION_PROVIDER_ORG_NAME = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1704
+
1705
+ if input.Config.SkipTestsDict != nil {
1706
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_RESOLUTION_PROVIDER_ORG_NAME"]; skip {
1707
+ return []validationutils.ValidationOutput{}, nil
1708
+ }
1709
+ }
1710
+
1711
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1712
+
1713
+ subResults := make([]validationutils.ValidationOutput, 0)
1714
+ valid := true
1715
+ configureDebugInfo := ""
1716
+ for _, testObjMap := range scope {
1717
+ validationutils.UnusedFunction(testObjMap)
1718
+
1719
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.resolution_provider.respondent_info.organization.org.name", true)
1720
+ validationutils.UnusedFunction(attr)
1721
+
1722
+ validate := validationutils.ArePresent(attr)
1723
+
1724
+ configureDebugInfo = `{"_NAME_":"REQUIRED_RESOLUTION_PROVIDER_ORG_NAME","attr":"$.message.issue.resolution_provider.respondent_info.organization.org.name","_RETURN_":"attr are present","action":["on_issue_status"]}`
1725
+
1726
+ if !validate {
1727
+ result := validationutils.ValidationOutput{
1728
+ TestName: "REQUIRED_RESOLUTION_PROVIDER_ORG_NAME",
1729
+ Valid: false,
1730
+ Code: 30000,
1731
+ Description: `#### **REQUIRED_RESOLUTION_PROVIDER_ORG_NAME**
1732
+
1733
+ - $.message.issue.resolution_provider.respondent_info.organization.org.name must be present in the payload`,
1734
+ DebugInfo: &validationutils.DebugInfo{
1735
+ FedConfig: configureDebugInfo,
1736
+ },
1737
+ }
1738
+ return []validationutils.ValidationOutput{result}, nil
1739
+ }
1740
+
1741
+ }
1742
+
1743
+ result := validationutils.ValidationOutput{
1744
+ TestName: "REQUIRED_RESOLUTION_PROVIDER_ORG_NAME",
1745
+ Valid: valid,
1746
+ Code: 0,
1747
+ DebugInfo: &validationutils.DebugInfo{
1748
+ FedConfig: configureDebugInfo,
1749
+ },
1750
+ }
1751
+
1752
+ if valid {
1753
+ result.Code = 200
1754
+ } else {
1755
+ result.Code = 30000
1756
+ }
1757
+
1758
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1759
+ results = append(results, result)
1760
+ results = append(results, subResults...)
1761
+
1762
+ return results, nil
1763
+ }
1764
+ var REQUIRED_RESOLUTION_PROVIDER_PERSON_NAME = func(input validationutils.ValidationInput) ([]validationutils.ValidationOutput, error) {
1765
+
1766
+ if input.Config.SkipTestsDict != nil {
1767
+ if _, skip := input.Config.SkipTestsDict["REQUIRED_RESOLUTION_PROVIDER_PERSON_NAME"]; skip {
1768
+ return []validationutils.ValidationOutput{}, nil
1769
+ }
1770
+ }
1771
+
1772
+ scope := validationutils.GetJsonPath(input.Payload, "$", true)
1773
+
1774
+ subResults := make([]validationutils.ValidationOutput, 0)
1775
+ valid := true
1776
+ configureDebugInfo := ""
1777
+ for _, testObjMap := range scope {
1778
+ validationutils.UnusedFunction(testObjMap)
1779
+
1780
+ attr := validationutils.GetJsonPath(testObjMap, "$.message.issue.resolution_provider.respondent_info.organization.person.name", true)
1781
+ validationutils.UnusedFunction(attr)
1782
+
1783
+ validate := validationutils.ArePresent(attr)
1784
+
1785
+ configureDebugInfo = `{"_NAME_":"REQUIRED_RESOLUTION_PROVIDER_PERSON_NAME","attr":"$.message.issue.resolution_provider.respondent_info.organization.person.name","_RETURN_":"attr are present","action":["on_issue_status"]}`
1786
+
1787
+ if !validate {
1788
+ result := validationutils.ValidationOutput{
1789
+ TestName: "REQUIRED_RESOLUTION_PROVIDER_PERSON_NAME",
1790
+ Valid: false,
1791
+ Code: 30000,
1792
+ Description: `#### **REQUIRED_RESOLUTION_PROVIDER_PERSON_NAME**
1793
+
1794
+ - $.message.issue.resolution_provider.respondent_info.organization.person.name must be present in the payload`,
1795
+ DebugInfo: &validationutils.DebugInfo{
1796
+ FedConfig: configureDebugInfo,
1797
+ },
1798
+ }
1799
+ return []validationutils.ValidationOutput{result}, nil
1800
+ }
1801
+
1802
+ }
1803
+
1804
+ result := validationutils.ValidationOutput{
1805
+ TestName: "REQUIRED_RESOLUTION_PROVIDER_PERSON_NAME",
1806
+ Valid: valid,
1807
+ Code: 0,
1808
+ DebugInfo: &validationutils.DebugInfo{
1809
+ FedConfig: configureDebugInfo,
1810
+ },
1811
+ }
1812
+
1813
+ if valid {
1814
+ result.Code = 200
1815
+ } else {
1816
+ result.Code = 30000
1817
+ }
1818
+
1819
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1820
+ results = append(results, result)
1821
+ results = append(results, subResults...)
1822
+
1823
+ return results, nil
1824
+ }
1825
+
1826
+ var testFunctions = validationutils.TestFunctionArray{
1827
+ REQUIRED_ISSUE_ID,
1828
+ REQUIRED_RESPONDENT_ACTION,
1829
+ REQUIRED_RESPONDENT_SHORT_DESC,
1830
+ REQUIRED_RESPONDENT_UPDATED_AT,
1831
+ REQUIRED_RESPONDENT_UPDATED_BY_PERSON,
1832
+ REQUIRED_RESPONDENT_UPDATED_BY_ORG,
1833
+ REQUIRED_ISSUE_CREATED_AT,
1834
+ REQUIRED_ISSUE_UPDATED_AT,
1835
+ REQUIRED_RESOLUTION_SHORT_DESC,
1836
+ REQUIRED_RESOLUTION_LONG_DESC,
1837
+ REQUIRED_RESOLUTION_ACTION_TRIGGERED,
1838
+ REQUIRED_RESOLUTION_PROVIDER_TYPE,
1839
+ REQUIRED_RESOLUTION_PROVIDER_ORG_NAME,
1840
+ REQUIRED_RESOLUTION_PROVIDER_PERSON_NAME,
1841
+ }
1842
+
1843
+ allResults := make([]validationutils.ValidationOutput, 0)
1844
+
1845
+ for _, testFunc := range testFunctions {
1846
+ results, err := testFunc(input)
1847
+ if err != nil {
1848
+ return nil, err
1849
+ }
1850
+ allResults = append(allResults, results...)
1851
+ }
1852
+
1853
+ subResults = allResults
1854
+ // if all subResults are valid, then valid is true
1855
+ valid = true
1856
+ for _, res := range subResults {
1857
+ if !res.Valid {
1858
+ valid = false
1859
+ break
1860
+ }
1861
+ }
1862
+
1863
+ configureDebugInfo = `NESTED_TEST_OBJECT`
1864
+
1865
+ }
1866
+
1867
+ result := validationutils.ValidationOutput{
1868
+ TestName: "ISSUE_ON_ISSUE_STATUS_VALIDATION",
1869
+ Valid: valid,
1870
+ Code: 0,
1871
+ DebugInfo: &validationutils.DebugInfo{
1872
+ FedConfig: configureDebugInfo,
1873
+ },
1874
+ }
1875
+
1876
+ if valid {
1877
+ result.Code = 200
1878
+ } else {
1879
+ result.Code = 30000
1880
+ }
1881
+
1882
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1883
+ results = append(results, result)
1884
+ results = append(results, subResults...)
1885
+
1886
+ return results, nil
1887
+ }
1888
+
1889
+ var testFunctions = validationutils.TestFunctionArray{
1890
+ REQUIRED_CONTEXT_FIELDS,
1891
+ ISSUE_ON_ISSUE_STATUS_VALIDATION,
1892
+ }
1893
+
1894
+ allResults := make([]validationutils.ValidationOutput, 0)
1895
+
1896
+ for _, testFunc := range testFunctions {
1897
+ results, err := testFunc(input)
1898
+ if err != nil {
1899
+ return nil, err
1900
+ }
1901
+ allResults = append(allResults, results...)
1902
+ }
1903
+
1904
+ subResults = allResults
1905
+ // if all subResults are valid, then valid is true
1906
+ valid = true
1907
+ for _, res := range subResults {
1908
+ if !res.Valid {
1909
+ valid = false
1910
+ break
1911
+ }
1912
+ }
1913
+
1914
+ configureDebugInfo = `NESTED_TEST_OBJECT`
1915
+
1916
+ }
1917
+
1918
+ result := validationutils.ValidationOutput{
1919
+ TestName: "On_issue_statusValidations",
1920
+ Valid: valid,
1921
+ Code: 0,
1922
+ DebugInfo: &validationutils.DebugInfo{
1923
+ FedConfig: configureDebugInfo,
1924
+ },
1925
+ }
1926
+
1927
+ if valid {
1928
+ result.Code = 200
1929
+ } else {
1930
+ result.Code = 30000
1931
+ }
1932
+
1933
+ results := make([]validationutils.ValidationOutput, 0, len(subResults)+1)
1934
+ results = append(results, result)
1935
+ results = append(results, subResults...)
1936
+
1937
+ return results, nil
1938
+ }