Skip to content

Commit a175507

Browse files
allocate lambda
1 parent 78cd159 commit a175507

File tree

13 files changed

+1672
-576
lines changed

13 files changed

+1672
-576
lines changed
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
resource "aws_lambda_event_source_mapping" "allocate_letter" {
2+
event_source_arn = module.sqs_letter_updates.sqs_queue_arn
3+
function_name = module.allocate_letter.function_name
4+
batch_size = 10
5+
maximum_batching_window_in_seconds = 5
6+
function_response_types = [
7+
"ReportBatchItemFailures"
8+
]
9+
}

infrastructure/terraform/components/api/lambda_event_source_mapping_upsert_letter.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
resource "aws_lambda_event_source_mapping" "upsert_letter" {
2-
event_source_arn = module.sqs_letter_updates.sqs_queue_arn
2+
event_source_arn = module.sqs_allocated_letters.sqs_queue_arn
33
function_name = module.upsert_letter.function_name
44
batch_size = 10
55
maximum_batching_window_in_seconds = 5

infrastructure/terraform/components/api/module_lambda_upsert_letter.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ data "aws_iam_policy_document" "upsert_letter_lambda" {
8282
]
8383

8484
resources = [
85-
module.sqs_letter_updates.sqs_queue_arn
85+
module.sqs_allocated_letters.sqs_queue_arn
8686
]
8787
}
8888
}

lambdas/allocate-letter/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
{
22
"dependencies": {
33
"@aws-sdk/client-dynamodb": "^3.858.0",
4+
"@aws-sdk/client-sqs": "^3.984.0",
45
"@aws-sdk/lib-dynamodb": "^3.858.0",
56
"@internal/datastore": "*",
67
"@nhsdigital/nhs-notify-event-schemas-letter-rendering": "^2.0.1",

lambdas/allocate-letter/src/config/__tests__/deps.test.ts

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -33,21 +33,12 @@ describe("createDependenciesContainer", () => {
3333
test("constructs deps and wires repository config correctly", async () => {
3434
// get current mock instances
3535
const pinoMock = jest.requireMock("pino");
36-
const { LetterRepository } = jest.requireMock("@internal/datastore");
3736

3837
// eslint-disable-next-line @typescript-eslint/no-require-imports
3938
const { createDependenciesContainer } = require("../deps");
4039
const deps: Deps = createDependenciesContainer();
4140

4241
expect(pinoMock.default).toHaveBeenCalledTimes(1);
43-
44-
expect(LetterRepository).toHaveBeenCalledTimes(1);
45-
const letterRepoCtorArgs = LetterRepository.mock.calls[0];
46-
expect(letterRepoCtorArgs[2]).toEqual({
47-
lettersTableName: "LettersTable",
48-
lettersTtlHours: 12_960,
49-
});
50-
5142
expect(deps.env).toEqual(env);
5243
});
5344
});

lambdas/allocate-letter/src/config/deps.ts

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,17 @@
1-
import { DynamoDBClient } from "@aws-sdk/client-dynamodb";
2-
import { DynamoDBDocumentClient } from "@aws-sdk/lib-dynamodb";
31
import { SQSClient } from "@aws-sdk/client-sqs";
42
import pino from "pino";
5-
import { LetterRepository } from "@internal/datastore";
63
import { EnvVars, envVars } from "./env";
74

85
export type Deps = {
9-
letterRepo: LetterRepository;
106
logger: pino.Logger;
117
env: EnvVars;
128
sqsClient: SQSClient;
139
};
1410

15-
function createDocumentClient(): DynamoDBDocumentClient {
16-
const ddbClient = new DynamoDBClient({});
17-
return DynamoDBDocumentClient.from(ddbClient);
18-
}
19-
20-
function createLetterRepository(
21-
log: pino.Logger,
22-
// eslint-disable-next-line @typescript-eslint/no-shadow
23-
envVars: EnvVars,
24-
): LetterRepository {
25-
const config = {
26-
lettersTableName: envVars.LETTERS_TABLE_NAME,
27-
lettersTtlHours: envVars.LETTER_TTL_HOURS,
28-
};
29-
30-
return new LetterRepository(createDocumentClient(), log, config);
31-
}
32-
3311
export function createDependenciesContainer(): Deps {
3412
const log = pino();
3513

3614
return {
37-
letterRepo: createLetterRepository(log, envVars),
3815
logger: log,
3916
env: envVars,
4017
sqsClient: new SQSClient({}),

0 commit comments

Comments
 (0)