Skip to content

Commit 75bbe81

Browse files
fix(event_source): Added missing properties in APIGatewayWebSocketEvent class (#6411)
* Added 2 new properties for querystring parameters and multi value querystring parameters. * Added missing test cases for querystring properties --------- Co-authored-by: Leandro Damascena <[email protected]>
1 parent b4cd5be commit 75bbe81

File tree

4 files changed

+30
-0
lines changed

4 files changed

+30
-0
lines changed

aws_lambda_powertools/utilities/data_classes/api_gateway_websocket_event.py

+8
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,14 @@ def headers(self) -> dict[str, str]:
123123
def multi_value_headers(self) -> dict[str, list[str]]:
124124
return CaseInsensitiveDict(self.get("multiValueHeaders"))
125125

126+
@property
127+
def query_string_parameters(self) -> dict[str, str]:
128+
return CaseInsensitiveDict(self.get("queryStringParameters"))
129+
130+
@property
131+
def multi_value_query_string_parameters(self) -> dict[str, list[str]]:
132+
return CaseInsensitiveDict(self.get("multiValueQueryStringParameters"))
133+
126134
@property
127135
def request_context(self) -> APIGatewayWebSocketEventRequestContext:
128136
return APIGatewayWebSocketEventRequestContext(self["requestContext"])

tests/events/apiGatewayWebSocketApiConnect.json

+9
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,15 @@
1919
"X-Forwarded-Port": ["443"],
2020
"X-Forwarded-Proto": ["https"]
2121
},
22+
"queryStringParameters": {
23+
"userId": "user123",
24+
"token": "abc.def.ghi"
25+
},
26+
"multiValueQueryStringParameters": {
27+
"userId": ["123"],
28+
"token": ["abc.def.ghi"],
29+
"filter": ["new", "unread"]
30+
},
2231
"requestContext": {
2332
"routeKey": "$connect",
2433
"eventType": "CONNECT",

tests/events/apiGatewayWebSocketApiDisconnect.json

+9
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,15 @@
1111
"X-Forwarded-For": [""],
1212
"x-restapi": [""]
1313
},
14+
"queryStringParameters": {
15+
"userId": "user123",
16+
"token": "abc.def.ghi"
17+
},
18+
"multiValueQueryStringParameters": {
19+
"userId": ["123"],
20+
"token": ["abc.def.ghi"],
21+
"filter": ["new", "unread"]
22+
},
1423
"requestContext": {
1524
"routeKey": "$disconnect",
1625
"disconnectStatusCode": 1005,

tests/unit/data_classes/required_dependencies/test_api_gateway_websocket_event.py

+4
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ def test_connect_api_gateway_websocket_event():
1414
assert parsed_event.json_body is None
1515
assert parsed_event.headers == raw_event["headers"]
1616
assert parsed_event.multi_value_headers == raw_event["multiValueHeaders"]
17+
assert parsed_event.query_string_parameters == raw_event["queryStringParameters"]
18+
assert parsed_event.multi_value_query_string_parameters == raw_event["multiValueQueryStringParameters"]
1719

1820
request_context = parsed_event.request_context
1921
request_context_raw = raw_event["requestContext"]
@@ -84,6 +86,8 @@ def test_message_api_gateway_websocket_event():
8486
assert parsed_event.json_body == json.loads(raw_event["body"])
8587
assert parsed_event.headers == {}
8688
assert parsed_event.multi_value_headers == {}
89+
assert parsed_event.query_string_parameters == {}
90+
assert parsed_event.multi_value_query_string_parameters == {}
8791

8892
request_context = parsed_event.request_context
8993
request_context_raw = raw_event["requestContext"]

0 commit comments

Comments
 (0)