Skip to content

Commit f114688

Browse files
committed
fix search error message bug
1 parent 32bd591 commit f114688

File tree

1 file changed

+9
-13
lines changed

1 file changed

+9
-13
lines changed

lambdas/backend/src/controller/parameter_parser.py

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ def process_optional_params(
107107
"""Parse optional params (date.from, date.to, _include).
108108
Raises ParameterExceptionError for any validation error.
109109
"""
110+
errors = []
110111
include = None
111112
date_from = None
112113
date_to = None
@@ -117,36 +118,31 @@ def process_optional_params(
117118

118119
if date_froms:
119120
if len(date_froms) != 1:
120-
raise ParameterExceptionError(
121-
f"Search parameter {ImmunizationSearchParameterName.DATE_FROM} may have one value at most."
122-
)
121+
errors.append(f"Search parameter {ImmunizationSearchParameterName.DATE_FROM} may have one value at most.")
123122
try:
124123
date_from = datetime.datetime.strptime(date_froms[0], "%Y-%m-%d").date()
125124
except ValueError:
126-
raise ParameterExceptionError(
127-
f"Search parameter {ImmunizationSearchParameterName.DATE_FROM} must be in format: YYYY-MM-DD"
128-
)
125+
errors.append(f"Search parameter {ImmunizationSearchParameterName.DATE_FROM} must be in format: YYYY-MM-DD")
129126

130127
if date_tos:
131128
if len(date_tos) != 1:
132-
raise ParameterExceptionError(
133-
f"Search parameter {ImmunizationSearchParameterName.DATE_TO} may have one value at most."
134-
)
129+
errors.append(f"Search parameter {ImmunizationSearchParameterName.DATE_TO} may have one value at most.")
135130
try:
136131
date_to = datetime.datetime.strptime(date_tos[0], "%Y-%m-%d").date()
137132
except ValueError:
138-
raise ParameterExceptionError(
139-
f"Search parameter {ImmunizationSearchParameterName.DATE_TO} must be in format: YYYY-MM-DD"
140-
)
133+
errors.append(f"Search parameter {ImmunizationSearchParameterName.DATE_TO} must be in format: YYYY-MM-DD")
141134

142135
if includes:
143136
if includes[0].lower() != "immunization:patient":
144-
raise ParameterExceptionError(
137+
errors.append(
145138
f"Search parameter {ImmunizationSearchParameterName.INCLUDE} may only be "
146139
f"'Immunization:patient' if provided."
147140
)
148141
include = includes[0]
149142

143+
if errors:
144+
raise ParameterExceptionError("; ".join(errors))
145+
150146
return date_from, date_to, include
151147

152148

0 commit comments

Comments
 (0)