@@ -13,8 +13,9 @@ import 'package:ht_api/src/services/user_preference_limit_service.dart';
13
13
import 'package:ht_api/src/services/verification_code_storage_service.dart' ;
14
14
import 'package:ht_data_mongodb/ht_data_mongodb.dart' ;
15
15
import 'package:ht_data_repository/ht_data_repository.dart' ;
16
- import 'package:ht_email_inmemory/ht_email_inmemory.dart' ;
17
16
import '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' ;
18
19
import 'package:ht_shared/ht_shared.dart' ;
19
20
import 'package:logging/logging.dart' ;
20
21
@@ -166,9 +167,24 @@ class AppDependencies {
166
167
);
167
168
remoteConfigRepository = HtDataRepository (dataClient: remoteConfigClient);
168
169
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);
172
188
173
189
// 5. Initialize Services
174
190
tokenBlacklistService = MongoDbTokenBlacklistService (
0 commit comments