Skip to content

Commit bcb7cf0

Browse files
review changes
1 parent 1641560 commit bcb7cf0

6 files changed

Lines changed: 26 additions & 49 deletions

File tree

infrastructure/terraform/components/api/module_sqs_supplier_allocator.tf

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -18,29 +18,6 @@ module "sqs_supplier_allocator" {
1818

1919
data "aws_iam_policy_document" "supplier_allocator_queue_policy" {
2020
version = "2012-10-17"
21-
statement {
22-
sid = "AllowSNSToSendMessage"
23-
effect = "Allow"
24-
25-
principals {
26-
type = "Service"
27-
identifiers = ["sns.amazonaws.com"]
28-
}
29-
30-
actions = [
31-
"sqs:SendMessage"
32-
]
33-
34-
resources = [
35-
"arn:aws:sqs:${var.region}:${var.aws_account_id}:${var.project}-${var.environment}-${var.component}-supplier-allocator-queue"
36-
]
37-
38-
condition {
39-
test = "ArnEquals"
40-
variable = "aws:SourceArn"
41-
values = [module.eventsub.sns_topic.arn]
42-
}
43-
}
4421

4522
statement {
4623
sid = "AllowSNSPermissions"

lambdas/supplier-allocator/src/config/__tests__/deps.test.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,12 @@ import type { Deps } from "lambdas/supplier-allocator/src/config/deps";
22

33
describe("createDependenciesContainer", () => {
44
const env = {
5-
LETTERS_TABLE_NAME: "LettersTable",
6-
LETTER_TTL_HOURS: 12_960,
5+
VARIANT_MAP: {
6+
lv1: {
7+
supplierId: "supplier1",
8+
specId: "spec1",
9+
},
10+
},
711
};
812

913
beforeEach(() => {

lambdas/supplier-allocator/src/config/__tests__/env.test.ts

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,6 @@ describe("lambdaEnv", () => {
1515
});
1616

1717
it("should load all environment variables successfully", () => {
18-
process.env.LETTERS_TABLE_NAME = "letters-table";
19-
process.env.LETTER_TTL_HOURS = "12960";
2018
process.env.VARIANT_MAP = `{
2119
"lv1": {
2220
"supplierId": "supplier1",
@@ -27,8 +25,6 @@ describe("lambdaEnv", () => {
2725
const { envVars } = require("../env");
2826

2927
expect(envVars).toEqual({
30-
LETTERS_TABLE_NAME: "letters-table",
31-
LETTER_TTL_HOURS: 12_960,
3228
VARIANT_MAP: {
3329
lv1: {
3430
supplierId: "supplier1",
@@ -39,8 +35,6 @@ describe("lambdaEnv", () => {
3935
});
4036

4137
it("should throw if a required env var is missing", () => {
42-
process.env.LETTERS_TABLE_NAME = "table";
43-
process.env.LETTER_TTL_HOURS = "12960";
4438
process.env.VARIANT_MAP = undefined;
4539

4640
expect(() => require("../env")).toThrow(ZodError);

lambdas/supplier-allocator/src/config/env.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@ const LetterVariantSchema = z.record(
1010
export type LetterVariant = z.infer<typeof LetterVariantSchema>;
1111

1212
const EnvVarsSchema = z.object({
13-
LETTERS_TABLE_NAME: z.string(),
14-
LETTER_TTL_HOURS: z.coerce.number().int(),
1513
VARIANT_MAP: z.string().transform((str, _) => {
1614
const parsed = JSON.parse(str);
1715
return LetterVariantSchema.parse(parsed);

lambdas/supplier-allocator/src/handler/__tests__/allocate-handler.test.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,8 +141,6 @@ describe("createSupplierAllocatorHandler", () => {
141141
mockedDeps = {
142142
logger: { error: jest.fn(), info: jest.fn() } as unknown as pino.Logger,
143143
env: {
144-
LETTERS_TABLE_NAME: "LETTERS_TABLE_NAME",
145-
LETTER_TTL_HOURS: 12_960,
146144
VARIANT_MAP: {
147145
lv1: {
148146
supplierId: "supplier1",

lambdas/upsert-letter/src/handler/upsert-handler.ts

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ const QueueMessageSchema = z.union([
3838
]);
3939

4040
type UpsertOperation = {
41-
name: "Insert" | "Update" | "Unknown";
41+
name: "Insert" | "Update";
4242
schemas: z.ZodSchema[];
4343
handler: (
4444
request: unknown,
@@ -173,6 +173,19 @@ function getSupplierIdFromEvent(letterEvent: any): string {
173173
return "unknown";
174174
}
175175

176+
function parseQueueMessage(queueMessage: string): any {
177+
const result = QueueMessageSchema.safeParse(queueMessage);
178+
179+
if (!result.success) {
180+
throw new Error(
181+
`Message did not match an expected schema: ${JSON.stringify(
182+
result.error.issues,
183+
)}`,
184+
);
185+
}
186+
return result.data;
187+
}
188+
176189
export default function createUpsertLetterHandler(deps: Deps): SQSHandler {
177190
return metricScope((metrics: MetricsLogger) => {
178191
return async (event: SQSEvent) => {
@@ -190,30 +203,23 @@ export default function createUpsertLetterHandler(deps: Deps): SQSHandler {
190203
});
191204
const queueMessage = JSON.parse(record.body);
192205

193-
const result = QueueMessageSchema.safeParse(queueMessage);
206+
const sqsEvent = parseQueueMessage(queueMessage);
194207

195-
if (!result.success) {
196-
throw new Error(
197-
`Message did not match expected schema: ${JSON.stringify(
198-
result.error.issues,
199-
)}`,
200-
);
201-
}
202208
let letterEvent: any;
203209
let supplierSpec: SupplierSpec | undefined;
204210

205-
if ("letterEvent" in result.data) {
206-
letterEvent = result.data.letterEvent;
207-
supplierSpec = result.data.supplierSpec;
211+
if ("letterEvent" in sqsEvent) {
212+
letterEvent = sqsEvent.letterEvent;
213+
supplierSpec = sqsEvent.supplierSpec;
208214
} else {
209-
letterEvent = result.data;
215+
letterEvent = sqsEvent;
210216
supplierSpec = undefined;
211217
}
212218

213219
deps.logger.info({
214220
description: "Extracted letter event",
215221
messageId: record.messageId,
216-
type: letterEvent,
222+
type: letterEvent.type,
217223
supplier: supplierSpec,
218224
});
219225

0 commit comments

Comments
 (0)