Skip to content

Commit 35f3c01

Browse files
committed
read from external membership v2 table
1 parent 99e53ac commit 35f3c01

File tree

3 files changed

+20
-9
lines changed

3 files changed

+20
-9
lines changed

src/api/functions/membership.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,14 @@ export async function checkExternalMembership(
3030
const { Items } = await dynamoClient.send(
3131
new QueryCommand({
3232
TableName: genericConfig.ExternalMembershipTableName,
33-
KeyConditionExpression: "#pk = :pk",
33+
KeyConditionExpression: "#pk = :pk and #sk = :sk",
3434
ExpressionAttributeNames: {
35-
"#pk": "netid_list",
35+
"#pk": "netId",
36+
"#sk": "memberList",
3637
},
3738
ExpressionAttributeValues: marshall({
38-
":pk": `${netId}_${list}`,
39+
":pk": netId,
40+
":sk": list,
3941
}),
4042
}),
4143
);

src/common/config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ const genericConfig: GenericConfigType = {
8585
IAMTablePrefix: "infra-core-api-iam",
8686
ProtectedEntraIDGroups: [infraChairsGroupId, officersGroupId],
8787
MembershipTableName: "infra-core-api-membership-provisioning",
88-
ExternalMembershipTableName: "infra-core-api-membership-external",
88+
ExternalMembershipTableName: "infra-core-api-membership-external-v2",
8989
RoomRequestsTableName: "infra-core-api-room-requests",
9090
RoomRequestsStatusTableName: "infra-core-api-room-requests-status",
9191
AuditLogTable: "infra-core-api-audit-log",

tests/unit/membership.test.ts

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -80,15 +80,24 @@ describe("Test membership routes", async () => {
8080
ddbMock.on(QueryCommand).callsFake((command) => {
8181
if (command.TableName === genericConfig.ExternalMembershipTableName) {
8282
const requestedEmail = command.ExpressionAttributeValues[":pk"].S;
83+
const requestedList = command.ExpressionAttributeValues[":sk"].S;
84+
const requestedKey = `${requestedEmail}_${requestedList}`;
8385
const mockMembershipData = {
84-
eadon2_built: { netid_list: "eadon2_built" },
85-
yourm4_wcs: { netid_list: "yourm4_wcs" },
86+
eadon2_built: { netId: "eadon2", list: "built" },
87+
yourm4_wcs: { netId: "yourm4", list: "wcs" },
8688
};
8789

8890
return Promise.resolve({
89-
Items: mockMembershipData[requestedEmail]
90-
? [marshall(mockMembershipData[requestedEmail])]
91-
: [],
91+
Items:
92+
requestedKey in mockMembershipData
93+
? [
94+
marshall(
95+
mockMembershipData[
96+
requestedKey as keyof typeof mockMembershipData
97+
],
98+
),
99+
]
100+
: [],
92101
});
93102
}
94103
return Promise.reject(new Error("Table not mocked"));

0 commit comments

Comments
 (0)