@@ -3,14 +3,15 @@ import { DynamoDBClient } from '@aws-sdk/client-dynamodb';
33import { DynamoDBDocumentClient } from '@aws-sdk/lib-dynamodb' ;
44import { SQSClient } from "@aws-sdk/client-sqs" ;
55import pino from 'pino' ;
6- import { LetterRepository , MIRepository } from '../../../../ internal/datastore' ;
6+ import { LetterRepository , MIRepository , DBHealthcheck } from '@ internal/datastore' ;
77import { envVars , EnvVars } from "../config/env" ;
88
99export type Deps = {
1010 s3Client : S3Client ;
1111 sqsClient : SQSClient ;
1212 letterRepo : LetterRepository ;
1313 miRepo : MIRepository ;
14+ dbHealthcheck : DBHealthcheck ;
1415 logger : pino . Logger ;
1516 env : EnvVars
1617} ;
@@ -20,6 +21,7 @@ function createDocumentClient(): DynamoDBDocumentClient {
2021 return DynamoDBDocumentClient . from ( ddbClient ) ;
2122}
2223
24+
2325function createLetterRepository ( log : pino . Logger , envVars : EnvVars ) : LetterRepository {
2426
2527 const config = {
@@ -30,6 +32,15 @@ function createLetterRepository(log: pino.Logger, envVars: EnvVars): LetterRepos
3032 return new LetterRepository ( createDocumentClient ( ) , log , config ) ;
3133}
3234
35+ function createDBHealthcheck ( envVars : EnvVars ) : DBHealthcheck {
36+ const config = {
37+ lettersTableName : envVars . LETTERS_TABLE_NAME ,
38+ lettersTtlHours : envVars . LETTER_TTL_HOURS
39+ } ;
40+
41+ return new DBHealthcheck ( createDocumentClient ( ) , config ) ;
42+ }
43+
3344function createMIRepository ( log : pino . Logger , envVars : EnvVars ) : MIRepository {
3445
3546 const config = {
@@ -49,6 +60,7 @@ export function createDependenciesContainer(): Deps {
4960 sqsClient : new SQSClient ( ) ,
5061 letterRepo : createLetterRepository ( log , envVars ) ,
5162 miRepo : createMIRepository ( log , envVars ) ,
63+ dbHealthcheck : createDBHealthcheck ( envVars ) ,
5264 logger : log ,
5365 env : envVars
5466 } ;
0 commit comments