Scaffold backend gateway and integration docs
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
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),
|
||||
);
|
||||
});
|
||||
Reference in New Issue
Block a user