1
1
from typing import Any
2
2
3
3
from cg .services .order_validation_service .errors .case_errors import CaseError
4
- from cg .services .order_validation_service .errors .case_sample_errors import CaseSampleError
4
+ from cg .services .order_validation_service .errors .case_sample_errors import (
5
+ CaseSampleError ,
6
+ )
5
7
from cg .services .order_validation_service .errors .order_errors import OrderError
6
- from cg .services .order_validation_service .errors .validation_errors import ValidationErrors
8
+ from cg .services .order_validation_service .errors .sample_errors import SampleError
9
+ from cg .services .order_validation_service .errors .validation_errors import (
10
+ ValidationErrors ,
11
+ )
7
12
8
13
9
14
def create_order_validation_response (raw_order : dict , errors : ValidationErrors ) -> dict :
@@ -17,6 +22,7 @@ def map_errors_to_order(order: dict, errors: ValidationErrors) -> None:
17
22
map_order_errors (order = order , errors = errors .order_errors )
18
23
map_case_errors (order = order , errors = errors .case_errors )
19
24
map_case_sample_errors (order = order , errors = errors .case_sample_errors )
25
+ map_sample_errors (order = order , errors = errors .sample_errors )
20
26
21
27
22
28
def map_order_errors (order : dict , errors : list [OrderError ]) -> None :
@@ -33,7 +39,13 @@ def map_case_errors(order: dict, errors: list[CaseError]) -> None:
33
39
def map_case_sample_errors (order : dict , errors : list [CaseSampleError ]) -> None :
34
40
for error in errors :
35
41
case : dict = get_case (order = order , index = error .case_index )
36
- sample : dict = get_sample (case = case , index = error .sample_index )
42
+ sample : dict = get_case_sample (case = case , index = error .sample_index )
43
+ add_error (entity = sample , field = error .field , message = error .message )
44
+
45
+
46
+ def map_sample_errors (order : dict , errors : list [SampleError ]) -> None :
47
+ for error in errors :
48
+ sample : dict = get_sample (order = order , index = error .sample_index )
37
49
add_error (entity = sample , field = error .field , message = error .message )
38
50
39
51
@@ -47,13 +59,20 @@ def get_case(order: dict, index: int) -> dict:
47
59
return order ["cases" ][index ]
48
60
49
61
50
- def get_sample (case : dict , index : int ) -> dict :
62
+ def get_case_sample (case : dict , index : int ) -> dict :
51
63
return case ["samples" ][index ]
52
64
53
65
66
+ def get_sample (order : dict , index : int ) -> dict :
67
+ return order ["samples" ][index ]
68
+
69
+
54
70
def wrap_fields (raw_order : dict ) -> None :
55
71
wrap_order_fields (raw_order )
56
- wrap_case_and_sample_fields (raw_order )
72
+ if raw_order .get ("cases" ):
73
+ wrap_case_and_sample_fields (raw_order )
74
+ else :
75
+ wrap_sample_fields (raw_order ["samples" ])
57
76
58
77
59
78
def wrap_order_fields (raw_order : dict ) -> None :
@@ -65,7 +84,7 @@ def wrap_order_fields(raw_order: dict) -> None:
65
84
def wrap_case_and_sample_fields (raw_order : dict ) -> None :
66
85
for case in raw_order ["cases" ]:
67
86
wrap_case_fields (case )
68
- wrap_sample_fields (case )
87
+ wrap_sample_fields (case [ "samples" ] )
69
88
70
89
71
90
def wrap_case_fields (case : dict ) -> None :
@@ -74,8 +93,7 @@ def wrap_case_fields(case: dict) -> None:
74
93
set_field (entity = case , field = field , value = value )
75
94
76
95
77
- def wrap_sample_fields (case : dict ) -> None :
78
- samples : list [dict ] = case .get ("samples" , [])
96
+ def wrap_sample_fields (samples : list [dict ]) -> None :
79
97
for sample in samples :
80
98
for field , value in sample .items ():
81
99
set_field (entity = sample , field = field , value = value )
0 commit comments