@@ -13,8 +13,9 @@ import 'package:ht_api/src/services/user_preference_limit_service.dart';
1313import 'package:ht_api/src/services/verification_code_storage_service.dart' ;
1414import 'package:ht_data_mongodb/ht_data_mongodb.dart' ;
1515import 'package:ht_data_repository/ht_data_repository.dart' ;
16- import 'package:ht_email_inmemory/ht_email_inmemory.dart' ;
1716import 'package:ht_email_repository/ht_email_repository.dart' ;
17+ import 'package:ht_email_sendgrid/ht_email_sendgrid.dart' ;
18+ import 'package:ht_http_client/ht_http_client.dart' ;
1819import 'package:ht_shared/ht_shared.dart' ;
1920import 'package:logging/logging.dart' ;
2021
@@ -166,9 +167,24 @@ class AppDependencies {
166167 );
167168 remoteConfigRepository = HtDataRepository (dataClient: remoteConfigClient);
168169
169- const emailClient = HtEmailInMemoryClient ();
170-
171- emailRepository = const HtEmailRepository (emailClient: emailClient);
170+ // Configure the HTTP client for SendGrid.
171+ // The HtHttpClient's AuthInterceptor will use the tokenProvider to add
172+ // the 'Authorization: Bearer <SENDGRID_API_KEY>' header.
173+ final sendGridHttpClient = HtHttpClient (
174+ baseUrl:
175+ EnvironmentConfig .sendGridApiUrl ?? 'https://api.sendgrid.com/v3' ,
176+ tokenProvider: () async => EnvironmentConfig .sendGridApiKey,
177+ isWeb: false , // This is a server-side implementation.
178+ logger: Logger ('HtEmailSendgridClient' ),
179+ );
180+
181+ // Initialize the SendGrid email client with the dedicated HTTP client.
182+ final emailClient = HtEmailSendGrid (
183+ httpClient: sendGridHttpClient,
184+ log: Logger ('HtEmailSendgrid' ),
185+ );
186+
187+ emailRepository = HtEmailRepository (emailClient: emailClient);
172188
173189 // 5. Initialize Services
174190 tokenBlacklistService = MongoDbTokenBlacklistService (
0 commit comments