Skip to content

Commit 3567f28

Browse files
authored
Add websocket event fields for route (#816)
1 parent 7bf39b1 commit 3567f28

File tree

2 files changed

+47
-0
lines changed

2 files changed

+47
-0
lines changed

lambda-events/src/event/apigw/mod.rs

+14
Original file line numberDiff line numberDiff line change
@@ -433,6 +433,10 @@ where
433433
pub route_key: Option<String>,
434434
#[serde(default)]
435435
pub status: Option<String>,
436+
#[serde(default)]
437+
pub disconnect_status_code: Option<i64>,
438+
#[serde(default)]
439+
pub disconnect_reason: Option<String>,
436440
}
437441

438442
/// `ApiGatewayCustomAuthorizerRequestTypeRequestIdentity` contains identity information for the request caller including certificate information if using mTLS.
@@ -936,6 +940,16 @@ mod test {
936940
assert_eq!(parsed, reparsed);
937941
}
938942

943+
#[test]
944+
#[cfg(feature = "apigw")]
945+
fn example_apigw_websocket_request_disconnect_route() {
946+
let data = include_bytes!("../../fixtures/example-apigw-websocket-request-disconnect-route.json");
947+
let parsed: ApiGatewayWebsocketProxyRequest = serde_json::from_slice(data).unwrap();
948+
let output: String = serde_json::to_string(&parsed).unwrap();
949+
let reparsed: ApiGatewayWebsocketProxyRequest = serde_json::from_slice(output.as_bytes()).unwrap();
950+
assert_eq!(parsed, reparsed);
951+
}
952+
939953
#[test]
940954
#[cfg(feature = "apigw")]
941955
fn example_apigw_v2_custom_authorizer_v1_request() {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
{
2+
"headers": {
3+
"Host": "abcd1234.execute-api.us-east-1.amazonaws.com",
4+
"x-api-key": "",
5+
"X-Forwarded-For": "",
6+
"x-restapi": ""
7+
},
8+
"multiValueHeaders": {
9+
"Host": [ "abcd1234.execute-api.us-east-1.amazonaws.com" ],
10+
"x-api-key": [ "" ],
11+
"X-Forwarded-For": [ "" ],
12+
"x-restapi": [ "" ]
13+
},
14+
"requestContext": {
15+
"routeKey": "$disconnect",
16+
"disconnectStatusCode": 1005,
17+
"eventType": "DISCONNECT",
18+
"extendedRequestId": "ABCD1234=",
19+
"requestTime": "09/Feb/2024:18:23:28 +0000",
20+
"messageDirection": "IN",
21+
"disconnectReason": "Client-side close frame status not set",
22+
"stage": "prod",
23+
"connectedAt": 1707503007396,
24+
"requestTimeEpoch": 1707503008941,
25+
"identity": { "sourceIp": "192.0.2.1" },
26+
"requestId": "ABCD1234=",
27+
"domainName": "abcd1234.execute-api.us-east-1.amazonaws.com",
28+
"connectionId": "AAAA1234=",
29+
"apiId": "abcd1234"
30+
},
31+
"isBase64Encoded": false
32+
}
33+

0 commit comments

Comments
 (0)