import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:softplayer_dart_proto/accounts/v1/accounts_v1.pbgrpc.dart'; import 'package:softplayer_dart_proto/projects/v1/projects_v1.pbgrpc.dart'; import 'package:softplayer_dart_proto/test/v1/test_v1.pbgrpc.dart'; import 'package:softplayer_web/core/grpc/grpc_auth_interceptor.dart'; import 'package:softplayer_web/core/tokens/application/tokens_application.dart'; import 'grpc_channel_provider.dart'; final testServiceClientProvider = Provider((ref) { final channel = ref.watch(grpcChannelProvider); final tokenState = ref.read(tokensControllerProvider).value; if (tokenState == null) { throw Exception("Token state is not initialized"); } return TestServiceClient( channel, interceptors: [ AuthInterceptor( getAccessToken: tokenState.getAccessToken, getRefreshToken: tokenState.getRefreshToken, ), ], ); }); final accountsServiceClientProvider = Provider((ref) { final channel = ref.watch(grpcChannelProvider); final tokenState = ref.read(tokensControllerProvider).value; if (tokenState == null) { throw Exception("Token state is not initialized"); } return AccountsServiceClient( channel, interceptors: [ AuthInterceptor( getAccessToken: tokenState.getAccessToken, getRefreshToken: tokenState.getRefreshToken, ), ], ); }); final projectsServiceClientProvider = Provider((ref) { final channel = ref.watch(grpcChannelProvider); final tokenState = ref.read(tokensControllerProvider).value; if (tokenState == null) { throw Exception("Token state is not initialized"); } return ProjectsServiceClient( channel, interceptors: [ AuthInterceptor( getAccessToken: tokenState.getAccessToken, getRefreshToken: tokenState.getRefreshToken, ), ], ); }); final publicAccountsServiceClientProvider = Provider((ref) { final channel = ref.watch(grpcChannelProvider); return PublicAccountsServiceClient(channel); }); final refreshSessionServiceClientProvider = Provider((ref) { final channel = ref.watch(grpcChannelProvider); return RefreshSessionServiceClient(channel); });