Files
rely/lib/integrations/backend/backend_gateway_provider.dart
2026-02-14 20:10:16 +01:00

37 lines
1.4 KiB
Dart

import 'package:dio/dio.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:relationship_saver/core/auth/secure_token_store.dart';
import 'package:relationship_saver/core/auth/token_store.dart';
import 'package:relationship_saver/core/config/app_config.dart';
import 'package:relationship_saver/core/network/dio_factory.dart';
import 'package:relationship_saver/integrations/backend/backend_gateway.dart';
import 'package:relationship_saver/integrations/backend/backend_gateway_fake.dart';
import 'package:relationship_saver/integrations/backend/backend_gateway_rest.dart';
/// Provides token storage implementation.
final Provider<TokenStore> tokenStoreProvider = Provider<TokenStore>((Ref ref) {
return SecureTokenStore();
});
/// Provides configured Dio client for backend transport.
final Provider<Dio> backendDioProvider = Provider<Dio>((Ref ref) {
final TokenStore tokenStore = ref.watch(tokenStoreProvider);
return DioFactory.create(
baseUrl: AppConfig.backendBaseUrl,
tokenStore: tokenStore,
);
});
/// Provides backend gateway implementation.
final Provider<BackendGateway> backendGatewayProvider =
Provider<BackendGateway>((Ref ref) {
if (AppConfig.useFakeBackend) {
return BackendGatewayFake();
}
return BackendGatewayRest(
dio: ref.watch(backendDioProvider),
tokenStore: ref.watch(tokenStoreProvider),
);
});