Renamed providers
This commit is contained in:
42
lib/providers/api_client.provider.dart
Normal file
42
lib/providers/api_client.provider.dart
Normal file
@@ -0,0 +1,42 @@
|
||||
import 'package:dio/dio.dart';
|
||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||
|
||||
import 'package:linkdy/providers/server_instances.provider.dart';
|
||||
import 'package:linkdy/providers/dio_interceptor.provider.dart';
|
||||
import 'package:linkdy/services/api_client.dart';
|
||||
import 'package:linkdy/utils/api_base_url.dart';
|
||||
|
||||
part 'api_client.provider.g.dart';
|
||||
|
||||
@Riverpod(keepAlive: true)
|
||||
class ApiClient extends _$ApiClient {
|
||||
@override
|
||||
ApiClientService? build() {
|
||||
final savedInstances = ref.watch(serverInstancesProvider);
|
||||
if (savedInstances.isNotEmpty) {
|
||||
final instance = savedInstances[0];
|
||||
final dio = Dio(
|
||||
BaseOptions(
|
||||
baseUrl: apiBaseUrl(instance),
|
||||
headers: {
|
||||
"Authorization": "Token ${instance.token}",
|
||||
},
|
||||
),
|
||||
)..interceptors.add(ref.watch(dioInterceptorProvider));
|
||||
return ApiClientService(
|
||||
serverInstance: instance,
|
||||
dioInstance: dio,
|
||||
);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
void setApiClient(ApiClientService client) {
|
||||
state = client;
|
||||
}
|
||||
|
||||
void disconnectApiClient() {
|
||||
state = null;
|
||||
ref.read(serverInstancesProvider.notifier).removeServerInstances();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user