4
4
from typing import Any , Callable , Dict , Iterator , List , Optional
5
5
6
6
from aws_lambda_powertools .shared .headers_serializer import BaseHeadersSerializer
7
+ from aws_lambda_powertools .utilities .data_classes .shared_functions import (
8
+ get_header_value ,
9
+ get_query_string_value ,
10
+ )
7
11
8
12
9
13
class DictWrapper (Mapping ):
@@ -90,26 +94,6 @@ def raw_event(self) -> Dict[str, Any]:
90
94
return self ._data
91
95
92
96
93
- def get_header_value (
94
- headers : Dict [str , str ], name : str , default_value : Optional [str ], case_sensitive : Optional [bool ]
95
- ) -> Optional [str ]:
96
- """Get header value by name"""
97
- # If headers is NoneType, return default value
98
- if not headers :
99
- return default_value
100
-
101
- if case_sensitive :
102
- return headers .get (name , default_value )
103
- name_lower = name .lower ()
104
-
105
- return next (
106
- # Iterate over the dict and do a case-insensitive key comparison
107
- (value for key , value in headers .items () if key .lower () == name_lower ),
108
- # Default value is returned if no matches was found
109
- default_value ,
110
- )
111
-
112
-
113
97
class BaseProxyEvent (DictWrapper ):
114
98
@property
115
99
def headers (self ) -> Dict [str , str ]:
@@ -166,8 +150,9 @@ def get_query_string_value(self, name: str, default_value: Optional[str] = None)
166
150
str, optional
167
151
Query string parameter value
168
152
"""
169
- params = self .query_string_parameters
170
- return default_value if params is None else params .get (name , default_value )
153
+ return get_query_string_value (
154
+ query_string_parameters = self .query_string_parameters , name = name , default_value = default_value
155
+ )
171
156
172
157
def get_header_value (
173
158
self , name : str , default_value : Optional [str ] = None , case_sensitive : Optional [bool ] = False
@@ -187,7 +172,9 @@ def get_header_value(
187
172
str, optional
188
173
Header value
189
174
"""
190
- return get_header_value (self .headers , name , default_value , case_sensitive )
175
+ return get_header_value (
176
+ headers = self .headers , name = name , default_value = default_value , case_sensitive = case_sensitive
177
+ )
191
178
192
179
def header_serializer (self ) -> BaseHeadersSerializer :
193
180
raise NotImplementedError ()
0 commit comments